BigInt switches from proper term to NoneValue in the middle of a function
KronicDeth opened this issue · 1 comments
KronicDeth commented
init.erl
-module(init).
-export([start/0]).
-import(erlang, [convert_time_unit/3, display/1]).
-import(lumen, [is_big_integer/1]).
start() ->
Time = 1000000000000000000,
display(is_big_integer(Time)),
FromHertz = 2,
ToHertz = 5,
display(convert_time_unit(Time, FromHertz, ToHertz)),
display(convert_time_unit(Time, FromHertz, second)),
display(convert_time_unit(Time, FromHertz, millisecond)),
display(convert_time_unit(Time, FromHertz, nanosecond)),
display(convert_time_unit(Time, FromHertz, native)),
display(convert_time_unit(Time, FromHertz, perf_counter)),
display(convert_time_unit(Time, second, ToHertz)),
display(convert_time_unit(Time, second, second)),
display(convert_time_unit(Time, second, millisecond)),
display(convert_time_unit(Time, second, nanosecond)),
display(convert_time_unit(Time, second, native)),
display(convert_time_unit(Time, second, perf_counter)),
display(convert_time_unit(Time, millisecond, ToHertz)),
display(convert_time_unit(Time, millisecond, second)),
display(convert_time_unit(Time, millisecond, millisecond)),
display(convert_time_unit(Time, millisecond, nanosecond)),
display(convert_time_unit(Time, millisecond, native)),
display(convert_time_unit(Time, millisecond, perf_counter)),
display(convert_time_unit(Time, microsecond, ToHertz)),
display(convert_time_unit(Time, microsecond, second)),
display(convert_time_unit(Time, microsecond, millisecond)),
display(convert_time_unit(Time, microsecond, nanosecond)),
display(convert_time_unit(Time, microsecond, native)),
display(convert_time_unit(Time, microsecond, perf_counter)),
display(convert_time_unit(Time, nanosecond, ToHertz)),
display(convert_time_unit(Time, nanosecond, second)),
display(convert_time_unit(Time, nanosecond, millisecond)),
display(convert_time_unit(Time, nanosecond, nanosecond)),
display(convert_time_unit(Time, nanosecond, native)),
display(convert_time_unit(Time, nanosecond, perf_counter)),
display(convert_time_unit(Time, native, ToHertz)),
display(convert_time_unit(Time, native, second)),
display(convert_time_unit(Time, native, millisecond)),
display(convert_time_unit(Time, native, nanosecond)),
display(convert_time_unit(Time, native, native)),
display(convert_time_unit(Time, native, perf_counter)),
display(convert_time_unit(Time, perf_counter, ToHertz)),
display(convert_time_unit(Time, perf_counter, second)),
display(convert_time_unit(Time, perf_counter, millisecond)),
display(convert_time_unit(Time, perf_counter, nanosecond)),
display(convert_time_unit(Time, perf_counter, native)),
display(convert_time_unit(Time, perf_counter, perf_counter)).
With extra logging
stdout = true
convert_time_unit(1000000000000000000, 2, 5)
2000000000000000000
convert_time_unit(1000000000000000000, 2, second)
500000000000000000
convert_time_unit(1000000000000000000, 2, millisecond)
500000000000000000000
convert_time_unit(1000000000000000000, 2, nanosecond)
500000000000000000000000000
convert_time_unit(1000000000000000000, 2, native)
500000000000000000000
convert_time_unit(1000000000000000000, 2, perf_counter)
500000000000000000000
convert_time_unit(1000000000000000000, second, 5)
5000000000000000000
convert_time_unit(1000000000000000000, second, second)
1000000000000000000
convert_time_unit(1000000000000000000, second, millisecond)
1000000000000000000000
convert_time_unit(1000000000000000000, second, nanosecond)
1000000000000000000000000000
convert_time_unit(1000000000000000000, second, native)
1000000000000000000000
convert_time_unit(1000000000000000000, second, perf_counter)
1000000000000000000000
convert_time_unit(1000000000000000000, millisecond, 5)
5000000000000000
convert_time_unit(1000000000000000000, millisecond, second)
1000000000000000
convert_time_unit(1000000000000000000, millisecond, millisecond)
1000000000000000000
convert_time_unit(1000000000000000000, millisecond, nanosecond)
1000000000000000000000000
convert_time_unit(1000000000000000000, millisecond, native)
1000000000000000000
convert_time_unit(1000000000000000000, millisecond, perf_counter)
1000000000000000000
convert_time_unit(1000000000000000000, microsecond, 5)
5000000000000
convert_time_unit(1000000000000000000, microsecond, second)
1000000000000
convert_time_unit(1000000000000000000, microsecond, millisecond)
1000000000000000
convert_time_unit(1000000000000000000, microsecond, nanosecond)
1000000000000000000000
convert_time_unit(1000000000000000000, microsecond, native)
1000000000000000
convert_time_unit(1000000000000000000, microsecond, perf_counter)
1000000000000000
convert_time_unit(1000000000000000000, nanosecond, 5)
5000000000
convert_time_unit(1000000000000000000, nanosecond, second)
1000000000
convert_time_unit(1000000000000000000, nanosecond, millisecond)
1000000000000
convert_time_unit(1000000000000000000, nanosecond, nanosecond)
1000000000000000000
convert_time_unit(1000000000000000000, nanosecond, native)
1000000000000
convert_time_unit(1000000000000000000, nanosecond, perf_counter)
1000000000000
convert_time_unit(1000000000000000000, native, 5)
5000000000000000
convert_time_unit(1000000000000000000, native, second)
1000000000000000
convert_time_unit(1000000000000000000, native, millisecond)
1000000000000000000
convert_time_unit(1000000000000000000, native, nanosecond)
1000000000000000000000000
convert_time_unit(1000000000000000000, native, native)
1000000000000000000
convert_time_unit(1000000000000000000, native, perf_counter)
1000000000000000000
convert_time_unit(1000000000000000000, perf_counter, 5)
5000000000000000
convert_time_unit(1000000000000000000, perf_counter, second)
1000000000000000
convert_time_unit(1000000000000000000, perf_counter, millisecond)
1000000000000000000
convert_time_unit(1000000000000000000, perf_counter, nanosecond)
1000000000000000000000000
convert_time_unit(NoneValue { backtrace: <disabled> }, perf_counter, native)
KronicDeth commented
Fixed by #541