aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorHenrik Nord <[email protected]>2013-11-29 12:02:14 +0100
committerHenrik Nord <[email protected]>2013-11-29 12:02:17 +0100
commit40d21f3f803a336b3d3edf338ec71a67ea1f09b1 (patch)
treec8de81d36bb31932be80880a02af34ce7dfbf9b6 /lib
parentb1309987eb47a009d2bfaa8f81e2f600090500a4 (diff)
parentc37d6d74c6bf9064ffbd488b77b424ff25c6bbc0 (diff)
downloadotp-40d21f3f803a336b3d3edf338ec71a67ea1f09b1.tar.gz
otp-40d21f3f803a336b3d3edf338ec71a67ea1f09b1.tar.bz2
otp-40d21f3f803a336b3d3edf338ec71a67ea1f09b1.zip
Merge branch 'nox/igor-funs' into maint
* nox/igor-funs: Remove a useless function clause in erl_syntax_lib Fix transformation of implicit funs in igor Fix reverting of implicit funs OTP-11506
Diffstat (limited to 'lib')
-rw-r--r--lib/syntax_tools/src/erl_syntax.erl19
-rw-r--r--lib/syntax_tools/src/erl_syntax_lib.erl2
-rw-r--r--lib/syntax_tools/src/igor.erl33
3 files changed, 25 insertions, 29 deletions
diff --git a/lib/syntax_tools/src/erl_syntax.erl b/lib/syntax_tools/src/erl_syntax.erl
index bdb2b5bcd7..409805e95f 100644
--- a/lib/syntax_tools/src/erl_syntax.erl
+++ b/lib/syntax_tools/src/erl_syntax.erl
@@ -5485,22 +5485,15 @@ revert_implicit_fun(Node) ->
arity_qualifier ->
F = arity_qualifier_body(Name),
A = arity_qualifier_argument(Name),
- case {type(F), type(A)} of
- {atom, integer} ->
- {'fun', Pos,
- {function, concrete(F), concrete(A)}};
- _ ->
- Node
- end;
+ {'fun', Pos, {function, F, A}};
module_qualifier ->
M = module_qualifier_argument(Name),
Name1 = module_qualifier_body(Name),
- F = arity_qualifier_body(Name1),
- A = arity_qualifier_argument(Name1),
- case {type(M), type(F), type(A)} of
- {atom, atom, integer} ->
- {'fun', Pos,
- {function, concrete(M), concrete(F), concrete(A)}};
+ case type(Name1) of
+ arity_qualifier ->
+ F = arity_qualifier_body(Name1),
+ A = arity_qualifier_argument(Name1),
+ {'fun', Pos, {function, M, F, A}};
_ ->
Node
end;
diff --git a/lib/syntax_tools/src/erl_syntax_lib.erl b/lib/syntax_tools/src/erl_syntax_lib.erl
index 2c94ac776d..e4665b99fc 100644
--- a/lib/syntax_tools/src/erl_syntax_lib.erl
+++ b/lib/syntax_tools/src/erl_syntax_lib.erl
@@ -1357,8 +1357,6 @@ analyze_attribute(file, Node) ->
analyze_file_attribute(Node);
analyze_attribute(record, Node) ->
analyze_record_attribute(Node);
-analyze_attribute(define, _Node) ->
- define;
analyze_attribute(spec, _Node) ->
spec;
analyze_attribute(_, Node) ->
diff --git a/lib/syntax_tools/src/igor.erl b/lib/syntax_tools/src/igor.erl
index d385c2b690..19b1cd592f 100644
--- a/lib/syntax_tools/src/igor.erl
+++ b/lib/syntax_tools/src/igor.erl
@@ -1803,20 +1803,25 @@ transform_rule(T, Env, St) ->
transform_implicit_fun(T, Env, St) ->
{T1, St1} = default_transform(T, Env, St),
- F = erl_syntax_lib:analyze_implicit_fun(T1),
- {V, Text} = case (Env#code.map)(F) of
- F ->
- %% Not renamed
- {none, []};
- {Atom, Arity} ->
- %% Renamed
- N = rewrite(
- erl_syntax:implicit_fun_name(T1),
- erl_syntax:arity_qualifier(
- erl_syntax:atom(Atom),
- erl_syntax:integer(Arity))),
- T2 = erl_syntax:implicit_fun(N),
- {{value, T2}, ["function was renamed"]}
+ {V, Text} = case erl_syntax:type(erl_syntax:implicit_fun_name(T1)) of
+ arity_qualifier ->
+ F = erl_syntax_lib:analyze_implicit_fun(T1),
+ case (Env#code.map)(F) of
+ F ->
+ %% Not renamed
+ {none, []};
+ {Atom, Arity} ->
+ %% Renamed
+ N = rewrite(
+ erl_syntax:implicit_fun_name(T1),
+ erl_syntax:arity_qualifier(
+ erl_syntax:atom(Atom),
+ erl_syntax:integer(Arity))),
+ T2 = erl_syntax:implicit_fun(N),
+ {{value, T2}, ["function was renamed"]}
+ end;
+ module_qualifier ->
+ {none, []}
end,
{maybe_modified_quiet(V, T1, 2, Text, Env), St1}.