Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dialyzer: add global variable binding #7717

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Binary file modified bootstrap/bin/no_dot_erlang.boot
Binary file not shown.
Binary file modified bootstrap/bin/start.boot
Binary file not shown.
Binary file modified bootstrap/bin/start_clean.boot
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_a.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_asm.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_block.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_bounds.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_call_types.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_clean.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_core_to_ssa.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_dict.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_digraph.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_disasm.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_flatten.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_jump.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_listing.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_opcodes.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_alias.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_bc_size.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_bool.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_bsm.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_check.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_codegen.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_dead.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_lint.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_opt.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_pp.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_pre_codegen.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_private_append.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_recv.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_share.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_throw.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_ssa_type.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_trim.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_types.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_utils.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_validator.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/beam_z.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/cerl.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/cerl_clauses.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/cerl_inline.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/cerl_trees.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/compile.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/core_lib.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/core_lint.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/core_parse.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/core_pp.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/core_scan.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/erl_bifs.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/rec_env.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/sys_core_alias.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/sys_core_bsm.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/sys_core_fold.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/sys_core_fold_lists.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/sys_core_inline.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/sys_core_prepare.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/sys_messages.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/sys_pre_attributes.beam
Binary file not shown.
Binary file modified bootstrap/lib/compiler/ebin/v3_core.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/application.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/application_controller.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/application_master.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/application_starter.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/auth.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/code.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/code_server.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/disk_log.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/disk_log_1.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/disk_log_server.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/disk_log_sup.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/dist_ac.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/dist_util.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erl_boot_server.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erl_compile_server.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erl_ddll.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erl_distribution.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erl_epmd.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erl_erts_errors.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erl_kernel_errors.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erl_reply.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erl_signal_handler.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erpc.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/error_handler.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/error_logger.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/erts_debug.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/file.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/file_io_server.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/file_server.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/gen_sctp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/gen_tcp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/gen_tcp_socket.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/gen_udp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/gen_udp_socket.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/global.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/global_group.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/global_search.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/group.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/group_history.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/heart.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet6_sctp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet6_tcp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet6_tcp_dist.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet6_udp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_config.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_db.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_dns.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_dns_tsig.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_epmd_dist.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_epmd_socket.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_gethost_native.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_hosts.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_parse.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_res.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_sctp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_tcp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_tcp_dist.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/inet_udp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/kernel.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/kernel_config.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/kernel_refc.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/local_tcp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/local_udp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_backend.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_config.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_disk_log_h.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_filters.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_formatter.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_h_common.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_handler_watcher.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_olp.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_proxy.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_server.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_simple_h.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_std_h.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/logger_sup.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/net.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/net_adm.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/net_kernel.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/os.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/pg.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/pg2.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/prim_tty.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/ram_file.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/raw_file_io.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/raw_file_io_compressed.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/raw_file_io_deflate.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/raw_file_io_delayed.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/raw_file_io_inflate.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/raw_file_io_list.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/rpc.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/seq_trace.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/socket.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/standard_error.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/user_drv.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/user_sup.beam
Binary file not shown.
Binary file modified bootstrap/lib/kernel/ebin/wrap_log_reader.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/argparse.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/array.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/base64.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/beam_lib.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/binary.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/c.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/calendar.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/dets.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/dets_server.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/dets_sup.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/dets_utils.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/dets_v9.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/dict.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/digraph.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/digraph_utils.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/edlin.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/edlin_context.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/edlin_expand.beam
Binary file not shown.
Binary file added bootstrap/lib/stdlib/ebin/edlin_key.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/edlin_type_suggestion.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/epp.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_abstract_code.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_anno.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_bits.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_compile.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_error.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_eval.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_expand_records.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_features.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_internal.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_lint.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_parse.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_posix_msg.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_pp.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_scan.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_stdlib_errors.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/erl_tar.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/error_logger_file_h.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/error_logger_tty_h.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/escript.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/ets.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/eval_bits.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/file_sorter.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/filelib.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/filename.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/gb_sets.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/gb_trees.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/gen.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/gen_event.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/gen_fsm.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/gen_server.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/gen_statem.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/io.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/io_lib.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/io_lib_format.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/io_lib_fread.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/io_lib_pretty.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/lists.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/log_mf_h.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/maps.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/math.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/ms_transform.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/orddict.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/ordsets.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/otp_internal.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/peer.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/pool.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/proc_lib.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/proplists.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/qlc.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/qlc_pt.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/queue.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/rand.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/random.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/re.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/sets.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/shell.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/shell_default.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/shell_docs.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/slave.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/sofs.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/string.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/supervisor.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/supervisor_bridge.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/sys.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/timer.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/unicode.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/unicode_util.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/uri_string.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/win32reg.beam
Binary file not shown.
Binary file modified bootstrap/lib/stdlib/ebin/zip.beam
Binary file not shown.
4 changes: 2 additions & 2 deletions erts/preloaded/src/erlang.erl
Original file line number Diff line number Diff line change
Expand Up @@ -1183,7 +1183,7 @@ float_to_binary(_Float) ->
Float :: float(),
Options :: [Option],
Option :: {decimals, Decimals :: 0..253} |
{scientific, Decimals :: 0..249} |
{scientific, ScientificDecimals :: 0..249} |
compact |
short.
float_to_binary(_Float, _Options) ->
Expand All @@ -1200,7 +1200,7 @@ float_to_list(_Float) ->
Float :: float(),
Options :: [Option],
Option :: {decimals, Decimals :: 0..253} |
{scientific, Decimals :: 0..249} |
{scientific, ScientificDecimals :: 0..249} |
compact |
short.
float_to_list(_Float, _Options) ->
Expand Down
3 changes: 1 addition & 2 deletions lib/dialyzer/test/small_SUITE_data/src/loopy.erl
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@

-spec loop(Args) -> ok when
Args :: [{Module, Args}],
Module :: module(),
Args :: any().
Module :: module().
loop([{Module, Args} | Rest]) ->
Module:init(Args),
loop(Rest);
Expand Down
8 changes: 4 additions & 4 deletions lib/inets/src/http_server/httpd_log.erl
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
%%% Internal Application API
%%%=========================================================================

-spec access_entry(Log :: term(), % Id of the log
-spec access_entry(IdLog :: term(), % Id of the log
NoLog :: term(), % What to return when no log is found
Info :: #mod{},
RFC931 :: string(),
Expand Down Expand Up @@ -72,7 +72,7 @@ access_entry(Log, NoLog,
log_entry(Log, NoLog, ConfigDB, MakeEntry).


-spec error_entry(Log :: term(), % Id of the log
-spec error_entry(IdLog :: term(), % Id of the log
NoLog :: term(), % What to return when no log is found
Info :: #mod{},
Date :: string(),
Expand All @@ -90,7 +90,7 @@ error_entry(Log, NoLog,
log_entry(Log, NoLog, ConfigDB, MakeEntry).


-spec error_report_entry(Log :: term(),
-spec error_report_entry(IdLog :: term(),
NoLog :: term(),
ConfigDB :: term(),
Date :: string(),
Expand All @@ -102,7 +102,7 @@ error_report_entry(Log, NoLog, ConfigDb, Date, ErrorStr) ->
log_entry(Log, NoLog, ConfigDb, MakeEntry).


-spec security_entry(Log :: term(),
-spec security_entry(IdLog :: term(),
NoLog :: term(),
ConfigDB :: term(),
Date :: string(),
Expand Down
4 changes: 2 additions & 2 deletions lib/kernel/src/logger_handler_watcher.erl
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@
%%%===================================================================

-spec start_link() -> {ok, Pid :: pid()} |
{error, Error :: {already_started, pid()}} |
{error, Error :: term()} |
{error, {already_started, pid()}} |
{error, term()} |
ignore.
start_link() ->
gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
Expand Down
2 changes: 1 addition & 1 deletion lib/mnesia/src/mnesia.erl
Original file line number Diff line number Diff line change
Expand Up @@ -2705,7 +2705,7 @@ install_fallback(Opaque) ->
-spec install_fallback(Src::term(), Mod::module()|[Opt]) ->
result() when
Opt :: Module | Scope | Dir,
Module :: {'module', Mod::module()},
Module :: {'module', module()},
Scope :: {'scope', 'global' | 'local'},
Dir :: {'mnesia_dir', Dir::string()}.
install_fallback(Opaque, Mod) ->
Expand Down
4 changes: 2 additions & 2 deletions lib/ssl/src/ssl_server_session_cache.erl
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@
%%%===================================================================

-spec start_link(pid(), map()) -> {ok, Pid :: pid()} |
{error, Error :: {already_started, pid()}} |
{error, Error :: term()} |
{error, {already_started, pid()}} |
{error, term()} |
ignore.
start_link(ssl_unknown_listener = Listener, Map) ->
gen_server:start_link({local, Listener}, ?MODULE, [Listener, Map], []);
Expand Down
6 changes: 3 additions & 3 deletions lib/ssl/src/tls_client_ticket_store.erl
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@
%%% API
%%%===================================================================
-spec start_link(integer(), integer()) -> {ok, Pid :: pid()} |
{error, Error :: {already_started, pid()}} |
{error, Error :: term()} |
{error, {already_started, pid()}} |
{error, term()} |
ignore.
start_link(Max, Lifetime) ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [Max, Lifetime], []).
Expand Down Expand Up @@ -157,7 +157,7 @@ code_change(_OldVsn, State, _Extra) ->


-spec format_status(Opt :: normal | terminate,
Status :: list()) -> Status :: term().
Status) -> Status :: list().
format_status(_Opt, Status) ->
Status.
%%%===================================================================
Expand Down
6 changes: 3 additions & 3 deletions lib/ssl/src/tls_server_session_ticket.erl
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@
%%%===================================================================
-spec start_link(term(), Mode, integer(), integer(), integer(), tuple(), Seed) ->
{ok, Pid :: pid()} |
{error, Error :: {already_started, pid()}} |
{error, Error :: term()} |
{error, {already_started, pid()}} |
{error, term()} |
ignore
when Mode :: stateful | stateless | stateful_with_cert | stateless_with_cert,
Seed :: undefined | binary().
Expand Down Expand Up @@ -156,7 +156,7 @@ code_change(_OldVsn, State, _Extra) ->


-spec format_status(Opt :: normal | terminate,
Status :: list()) -> Status :: term().
Status) -> Status :: list().
format_status(_Opt, Status) ->
Status.

Expand Down
146 changes: 131 additions & 15 deletions lib/stdlib/src/erl_lint.erl
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,8 @@ format_error({undefined_callback, {_M, F, A}}) ->
%% --- types and specs ---
format_error({singleton_typevar, Name}) ->
io_lib:format("type variable ~w is only used once (is unbound)", [Name]);
format_error({multiple_definitions_of_type, Type}) ->
io_lib:format("annotated type ~w given multiple type definitions", [Type]);
format_error({bad_export_type, _ETs}) ->
io_lib:format("bad export_type declaration", []);
format_error({duplicated_export_type, {T, A}}) ->
Expand Down Expand Up @@ -676,6 +678,9 @@ start(File, Opts) ->
{singleton_typevar,
bool_option(warn_singleton_typevar, nowarn_singleton_typevar,
true, Opts)},
{multiple_definitions_of_type,
bool_option(warn_multiple_definitions_of_type, nowarn_multiple_definitions_of_type,
true, Opts)},
{match_float_zero,
bool_option(warn_match_float_zero, nowarn_match_float_zero,
true, Opts)}
Expand Down Expand Up @@ -2960,13 +2965,14 @@ warn_redefined_builtin_type(Anno, TypePair, #lint{compile=Opts}=St) ->

check_type(Types, St) ->
{SeenVars, St1} = check_type_1(Types, maps:new(), St),
SingletonWarningEnabled = is_warn_enabled(singleton_typevar, St),
maps:fold(fun(Var, {seen_once, Anno}, AccSt) ->
case atom_to_list(Var) of
"_"++_ -> AccSt;
_ -> add_error(Anno, {singleton_typevar, Var}, AccSt)
end;
case atom_to_list(Var) of
"_"++_ -> AccSt;
_ -> add_error(Anno, {singleton_typevar, Var}, AccSt)
end;
(Var, {seen_once_union, Anno}, AccSt) ->
case is_warn_enabled(singleton_typevar, AccSt) of
case SingletonWarningEnabled of
true ->
case atom_to_list(Var) of
"_"++_ -> AccSt;
Expand All @@ -2975,9 +2981,10 @@ check_type(Types, St) ->
false ->
AccSt
end;
(_Var, seen_multiple, AccSt) ->
AccSt
end, St1, SeenVars).
(_Var, seen_multiple, AccSt) ->
AccSt
end, St1, SeenVars).


check_type_1({type, Anno, TypeName, Args}=Type, SeenVars, #lint{types=Types}=St) ->
TypePair = {TypeName,
Expand All @@ -2994,8 +3001,16 @@ check_type_1({type, Anno, TypeName, Args}=Type, SeenVars, #lint{types=Types}=St)
check_type_1(Types, SeenVars, St) ->
check_type_2(Types, SeenVars, St).

check_type_2({ann_type, _A, [_Var, Type]}, SeenVars, St) ->
check_type_1(Type, SeenVars, St);

check_type_2({ann_type, _A, [{var, _Anno, Name}, Type]}, SeenVars, St) ->
NewSeenVars =
case maps:find(Name, SeenVars) of
{ok, {seen_once, _}} -> maps:put(Name, seen_multiple, SeenVars);
{ok, {seen_once_union, _}} -> maps:put(Name, seen_multiple, SeenVars);
{ok, seen_multiple} -> SeenVars;
error -> maps:put(Name, seen_multiple, SeenVars)
end,
check_type_1(Type, NewSeenVars, St);
check_type_2({remote_type, A, [{atom, _, Mod}, {atom, _, Name}, Args]},
SeenVars, St00) ->
St0 = check_module_name(Mod, A, St00),
Expand Down Expand Up @@ -3294,7 +3309,7 @@ any_control_characters(Cs) ->
(_) -> false
end, Cs).

check_specs([FunType|Left], ETag, Arity, St0) ->
check_specs([FunType|Left]=E, ETag, Arity, St0) ->
{FunType1, CTypes} =
case FunType of
{type, _, bounded_fun, [FT = {type, _, 'fun', _}, Cs]} ->
Expand All @@ -3305,15 +3320,116 @@ check_specs([FunType|Left], ETag, Arity, St0) ->
{type, A, 'fun', [{type, _, product, D}, _]} = FunType1,
SpecArity = length(D),
St1 = case Arity =:= SpecArity of
true -> St0;
false -> %% Cannot happen if called from the compiler.
true -> St0;
false -> %% Cannot happen if called from the compiler.
add_error(A, ETag, St0)
end,
end,
St2 = check_type({type, nowarn(), product, [FunType1|CTypes]}, St1),
check_specs(Left, ETag, Arity, St2);
St3 = check_redefinition_annotated_types(E, St2),
check_specs(Left, ETag, Arity, St3);
check_specs([], _ETag, _Arity, St) ->
St.

%% Checks that there are no annotated types with the same name and different type
check_redefinition_annotated_types(E, St) ->
case is_warn_enabled(multiple_definitions_of_type, St) of
true ->
lists:foldl(fun check_annotated_types/2, St, E);
false ->
St
end.

-spec check_annotated_types([InputType], St :: term()) -> TypeAnnotations when
InputType :: {Tag, A, Kind, Args :: [InputType] | any}
| {Tag, A, Args :: [InputType] | any}
| {Tag, A, Op :: term(), Arg1 :: term(), Arg2 :: term()}
| TypeAnnotation,
Tag :: type | ann_type | op | remote_type | atom,
A :: tuple(),
Kind :: binary | nil | 'fun' | range | map | record | tuple
| union | product | is_subset | constraint | term(),
TypeAnnotations :: [TypeAnnotation],
TypeAnnotation :: {var, Tag, A, TypeAnnotations} | {var, Tag, A}.
check_annotated_types([], St) ->
St;
check_annotated_types(T0, St) ->
AnnotatedTypes = collect_annotations(T0, []),
GroupedAnnTypes = maps:groups_from_list(fun ({var, _, Name, _Type}) -> Name end,
fun ({var, A, _Name, Type}) -> {A, Type} end,
AnnotatedTypes),
maps:fold(fun add_type_clash_errors/3, St, GroupedAnnTypes).

add_type_clash_errors(_VarName, [], St) ->
St;
add_type_clash_errors(VarName, [{A, Type0} | T], St) ->
EqualTypes = fun ({_, Type1}) -> equal_types(Type0, Type1) end,
case lists:all(EqualTypes, T) of
true ->
St;
false ->
add_error(A, {multiple_definitions_of_type, VarName}, St)
end.

equal_types({Tag0, _, Kind0, Args0}, {Tag0, _, Kind0, Args1}) ->
equal_types(Args0, Args1);
equal_types({Tag0, _, Args0}, {Tag0, _, Args1}) ->
equal_types(Args0, Args1);
equal_types({Tag0, _, Op0, Args0, Args1}, {Tag0, _, Op0, Args2, Args3}) ->
equal_types(Args0, Args2) andalso equal_types(Args1, Args3);
equal_types([H0 | T0], [H1 | T1]) ->
equal_types(H0, H1) andalso equal_types(T0, T1);
equal_types({var, Tag0, _, TypeAnnotation0}, {var, Tag0, _, TypeAnnotation1}) ->
equal_types(TypeAnnotation0, TypeAnnotation1);
equal_types({var, Tag0, _}, {var, Tag0, _}) ->
true;
equal_types(T1, T2) ->
T1 =:= T2.

-spec collect_annotations(InputType, Acc :: [term()]) -> TypeAnnotations when
InputType :: {Tag, A, Kind, Args :: [InputType] | any}
| {Tag, A, Args :: [InputType] | any}
| {Tag, A, Op :: term(), Arg1 :: term(), Arg2 :: term()}
| TypeAnnotation,
Tag :: type | ann_type | op | remote_type | atom,
A :: tuple(),
Kind :: binary | nil | 'fun' | range | map | record | tuple
| union | product | is_subset | constraint | term(),
TypeAnnotations :: [TypeAnnotation],
TypeAnnotation :: {var, Tag, A, TypeAnnotations} | {var, Tag, A}.
collect_annotations({type, _, bounded_fun, [Type, Args]}, Acc) ->
lists:foldl(fun collect_annotations/2, Acc, [Type | Args]);
collect_annotations({type, A, constraint, [_SubType, Types]}, Acc) when is_list(Types) ->
collect_annotations({ann_type, A, Types}, Acc);
collect_annotations({type, _, _, Args}, Acc) when is_list(Args) ->
lists:foldl(fun collect_annotations/2, Acc, Args);
collect_annotations({user_type, _, _, Args}, Acc) when is_list(Args) ->
lists:foldl(fun collect_annotations/2, Acc, Args);
collect_annotations({ann_type, _, _}=AnnType, Acc) ->
[parse_annotation_types(AnnType) | Acc];
collect_annotations({remote_type, _, [M, N, Args]}, Acc) ->
lists:foldl(fun collect_annotations/2, Acc, [M, N, Args]);
collect_annotations(_, Acc) ->
Acc.

%% One should only reach this function from an annotated type. This function
%% parses annotation types, recursing on items that may contain other annotated
%% types, and leaves invariant any non-annotated type built from an annotated
%% type, e.g.,
%%
%% > parse_annotation_types({ann_type, A, [{var, _, VarName}, {type, _A, map, any}]})
%% {var, A, VarName, {type, _A, map, any}}
%%
parse_annotation_types({type, A, Op, Args}) when is_list(Args) ->
{type, A, Op, lists:map(fun parse_annotation_types/1, Args)};
parse_annotation_types({remote_type, A, [M, N, Args]}) ->
{remote_type, A, lists:map(fun parse_annotation_types/1, [M, N | Args])};
parse_annotation_types({ann_type, _, [{var, A, VarName}, Type]}) ->
{var, A, VarName, parse_annotation_types(Type)};
parse_annotation_types({user_type, A, UserDefinedType, Args}) ->
{user_type, A, UserDefinedType, lists:map(fun parse_annotation_types/1, Args)};
parse_annotation_types(Other) when is_tuple(Other)->
Other.

nowarn() ->
A0 = erl_anno:new(0),
A1 = erl_anno:set_generated(true, A0),
Expand Down
2 changes: 1 addition & 1 deletion lib/stdlib/src/ms_transform.erl
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ transform_from_shell(Dialect, Clauses, BoundEnvironment) ->
Forms :: [erl_parse:abstract_form() | erl_parse:form_info()],
Forms2 :: [erl_parse:abstract_form() | erl_parse:form_info()],
Options :: term(),
Errors :: {error, ErrInfo :: [tuple()], WarnInfo :: []},
Errors :: {error, ErrInfo :: [tuple()], WarnInfo :: [tuple()]},
Warnings :: {warning, Forms2, WarnInfo :: [tuple()]}.

parse_transform(Forms, _Options) ->
Expand Down
Loading