Therefore, for example, the current implementation rejects the following, which is accepted by Dialyzer:
-module(binary_test).
-export([main/1]).
main(X) ->
_ = binary_to_integer(X), %% binary -> integer.
_ = bit_size(X). %% bitstring -> integer >= 0.
The current version of Fialyzer does not implement the following parts:
https://github.com/erlang/otp/blob/OTP-22.0.7/lib/hipe/cerl/erl_types.erl#L2567-L2568
https://github.com/erlang/otp/blob/OTP-22.0.7/lib/hipe/cerl/erl_types.erl#L2876-L2889
Therefore, for example, the current implementation rejects the following, which is accepted by Dialyzer: