From cc2503f49e9fa445290740ebd11f1222431f5bd9 Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Wed, 26 Oct 2016 13:46:06 +0200 Subject: erts: Correct type declaration of match specification head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug reported by Peti Gömöri . --- erts/doc/src/erlang.xml | 20 ++++++++++++++++++++ erts/preloaded/src/erlang.erl | 3 ++- erts/preloaded/src/erts_internal.erl | 3 ++- lib/dialyzer/test/small_SUITE_data/src/ms.erl | 8 ++++++++ 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 lib/dialyzer/test/small_SUITE_data/src/ms.erl diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml index b0d25389fd..9646953518 100644 --- a/erts/doc/src/erlang.xml +++ b/erts/doc/src/erlang.xml @@ -9529,6 +9529,10 @@ timestamp() -> + + + Approximation of '$1' | '$2' | '$3' | ... +

Returns trace information about a port, process, function, or event.

@@ -9660,6 +9664,10 @@ timestamp() -> + + Approximation of '$1' | '$2' | '$3' | ... + +

The same as @@ -9672,6 +9680,10 @@ timestamp() -> Set trace pattern for message sending. + + + Approximation of '$1' | '$2' | '$3' | ... +

Sets trace pattern for message sending. Must be combined with @@ -9739,6 +9751,10 @@ timestamp() -> Set trace pattern for tracing of message receiving. + + + Approximation of '$1' | '$2' | '$3' | ... +

Sets trace pattern for message receiving. Must be combined with @@ -9809,6 +9825,10 @@ timestamp() -> + + + Approximation of '$1' | '$2' | '$3' | ... +

Enables or disables call tracing for one or more functions. Must be combined with diff --git a/erts/preloaded/src/erlang.erl b/erts/preloaded/src/erlang.erl index 652a954807..8771089b65 100644 --- a/erts/preloaded/src/erlang.erl +++ b/erts/preloaded/src/erlang.erl @@ -2408,10 +2408,11 @@ term_to_binary(_Term, _Options) -> tl(_List) -> erlang:nif_error(undefined). +-type match_variable() :: atom(). % Approximation of '$1' | '$2' | ... -type trace_pattern_mfa() :: {atom(),atom(),arity() | '_'} | on_load. -type trace_match_spec() :: - [{[term()] | '_' ,[term()],[term()]}]. + [{[term()] | '_' | match_variable() ,[term()],[term()]}]. -spec erlang:trace_pattern(MFA, MatchSpec) -> non_neg_integer() when MFA :: trace_pattern_mfa() | send | 'receive', diff --git a/erts/preloaded/src/erts_internal.erl b/erts/preloaded/src/erts_internal.erl index 6aae5ba38c..f4518c4008 100644 --- a/erts/preloaded/src/erts_internal.erl +++ b/erts/preloaded/src/erts_internal.erl @@ -438,10 +438,11 @@ microstate_accounting(Ref, Threads) -> trace(_PidSpec, _How, _FlagList) -> erlang:nif_error(undefined). +-type match_variable() :: atom(). % Approximation of '$1' | '$2' | ... -type trace_pattern_mfa() :: {atom(),atom(),arity() | '_'} | on_load. -type trace_match_spec() :: - [{[term()] | '_' ,[term()],[term()]}]. + [{[term()] | '_' | match_variable() ,[term()],[term()]}]. -spec trace_pattern(MFA, MatchSpec, FlagList) -> non_neg_integer() when MFA :: trace_pattern_mfa(), diff --git a/lib/dialyzer/test/small_SUITE_data/src/ms.erl b/lib/dialyzer/test/small_SUITE_data/src/ms.erl new file mode 100644 index 0000000000..47a5e886cf --- /dev/null +++ b/lib/dialyzer/test/small_SUITE_data/src/ms.erl @@ -0,0 +1,8 @@ +-module(ms). +-export([t/0]). + +-include_lib("stdlib/include/ms_transform.hrl"). + +t() -> + MS = dbg:fun2ms(fun(All) -> message(All) end), + erlang:trace_pattern({m, f, '_'}, MS). -- cgit v1.2.3 From 16cf273d4004be907f976ca0e059e895fdf9692b Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Tue, 1 Nov 2016 10:32:01 +0100 Subject: Update preloaded --- erts/preloaded/ebin/erlang.beam | Bin 105100 -> 105116 bytes erts/preloaded/ebin/erts_internal.beam | Bin 11104 -> 11132 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/erts/preloaded/ebin/erlang.beam b/erts/preloaded/ebin/erlang.beam index c68debeabc..fbbfefa462 100644 Binary files a/erts/preloaded/ebin/erlang.beam and b/erts/preloaded/ebin/erlang.beam differ diff --git a/erts/preloaded/ebin/erts_internal.beam b/erts/preloaded/ebin/erts_internal.beam index 227b62b7d3..2a7bfb8b86 100644 Binary files a/erts/preloaded/ebin/erts_internal.beam and b/erts/preloaded/ebin/erts_internal.beam differ -- cgit v1.2.3