-
Notifications
You must be signed in to change notification settings - Fork 44
Open
Description
fast_xml uses functions from the erl_types module from Erlang/OTP. In Erlang 28, this module got changes, and now dialyzer fails:
$ rebar3 dialyzer
===> Verifying dependencies...
===> Analyzing applications...
===> Compiling fast_xml
===> Dialyzer starting, this may take a while...
===> Updating plt...
===> Resolving project files...
===> Updating base plt...
===> Resolving base files...
===> Checking 222 files in /home/bernar/.cache/rebar3/rebar3_28.0_plt...
===> Copying /home/bernar/.cache/rebar3/rebar3_28.0_plt to /home/bernar/e/git/librerias/fast_xml/_build/default/rebar3_28.0_plt...
===> Checking 222 files in _build/default/rebar3_28.0_plt...
===> Adding 113 files to _build/default/rebar3_28.0_plt...
===> Doing success typing analysis...
===> Resolving project warning files...
===> Analyzing 9 files with _build/default/rebar3_28.0_plt...
src/fxml_gen.erl
Line 3110 Column 57: The pattern {'type', _, 'list', [T]}
can never match the type
(erl_types:erl_type() :: 'any' | 'none' | 'opaque' | 'unit' | {'c',atom(),_,'float' | 'integer' | 'nonempty' | 'pid' | 'port' | 'reference' | 'unknown' | {_,_}})
Line 3112 Column 57: The pattern {'remote_type', _, [{'atom', _, 'erlang'}, {'atom', _, 'timestamp'}, []]}
can never match the type
(erl_types:erl_type() :: 'any' | 'none' | 'opaque' | 'unit' | {'c',atom(),_,'float' | 'integer' | 'nonempty' | 'pid' | 'port' | 'reference' | 'unknown' | {_,_}})
Line 3119 Column 57: The pattern {'remote_type', _, [{'atom', _, 'inet'}, {'atom', _, 'ip_address'}, []]}
can never match the type
(erl_types:erl_type() :: 'any' | 'none' | 'opaque' | 'unit' | {'c',atom(),_,'float' | 'integer' | 'nonempty' | 'pid' | 'port' | 'reference' | 'unknown' | {_,_}})
Line 3123 Column 57: The pattern {'remote_type', _, [{'atom', _, 'jid'}, {'atom', _, 'jid'}, []]}
can never match the type
(erl_types:erl_type() :: 'any' | 'none' | 'opaque' | 'unit' | {'c',atom(),_,'float' | 'integer' | 'nonempty' | 'pid' | 'port' | 'reference' | 'unknown' | {_,_}})
Line 3127 Column 57: The pattern {'type', _, 'union', _}
can never match the type
(erl_types:erl_type() :: 'any' | 'none' | 'opaque' | 'unit' | {'c',atom(),_,'float' | 'integer' | 'nonempty' | 'pid' | 'port' | 'reference' | 'unknown' | {_,_}})
Line 3686 Column 22: Guard test 'c' == 'remote_type' can never succeed
Line 4216 Column 15: The call erl_types:t_from_form(Spec::any(), sets:set(_), {'type', {'mod', 'foo', 1}, "mod.erl"}, atom() | ets:tid(), #{}, erl_types:cache())
will never return since the success typing is
({'ann_type' | 'atom' | 'char' | 'integer' | 'remote_type' | 'var',erl_anno:anno(),atom() | [any()] | non_neg_integer()} | {'op',erl_anno:anno(),'+' | '-' | 'bnot' | 'not',_} | {'type',erl_anno:anno(),atom(),'any' | [any()]} | {'user_type',erl_anno:anno(),atom(),[any()]} | {'op',erl_anno:anno(),atom(),_,_}, 'replace_by_none' | ets:tid(), {'record',{atom(),atom(),byte()},string()} | {'spec',{atom(),atom(),byte()},string()} | {'type',{atom(),atom(),byte()},string()}, 'undefined' | ets:tid(), #{atom() | integer()=>(erl_types:erl_type() :: 'any' | 'none' | 'opaque' | 'unit' | {'c',atom(),_,'float' | 'integer' | 'nonempty' | 'pid' | 'port' | 'reference' | 'unknown' | {_,_}})}, erl_types:cache()) -> {(erl_types:erl_type() :: 'any' | 'none' | 'opaque' | 'unit' | {'c',atom(),_,'float' | 'integer' | 'nonempty' | 'pid' | 'port' | 'reference' | 'unknown' | {_,_}}),erl_types:cache()}
and the contract is (parse_form(), exported_type_table(), site(), mod_type_table(), var_table(), cache()) -> {erl_type(),cache()}
Line 4225 Column 11: Call to missing or unexported function erl_types:t_opaque_from_records/1
===> Warnings written to _build/default/28.0.dialyzer_warnings
===> Warnings occurred running dialyzer: 8Metadata
Metadata
Assignees
Labels
No labels