LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File 0003-Fix-reverting-of-local-implicit-funs-in-erl_syntax.patch of Package erlang (Project home:Ledest:erlang:R15)

From 5360e3097fad1f05965d309b672720a864c02e55 Mon Sep 17 00:00:00 2001
From: Anthony Ramine <n.oxyde@gmail.com>
Date: Thu, 12 Dec 2013 23:41:28 +0100
Subject: [PATCH] Fix reverting of local implicit funs in erl_syntax

This partially reverts 290dc2b08a2f92157ac5358fba815f4dbb32f8f2 in which
implicit funs were mistakenly thought to be using abstract terms for their name
and arity.
---
 lib/syntax_tools/src/erl_syntax.erl | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lib/syntax_tools/src/erl_syntax.erl b/lib/syntax_tools/src/erl_syntax.erl
index 409805e..775b2cc 100644
--- a/lib/syntax_tools/src/erl_syntax.erl
+++ b/lib/syntax_tools/src/erl_syntax.erl
@@ -5485,7 +5485,13 @@ revert_implicit_fun(Node) ->
 	arity_qualifier ->
 	    F = arity_qualifier_body(Name),
 	    A = arity_qualifier_argument(Name),
-	    {'fun', Pos, {function, F, A}};
+	    case {type(F), type(A)} of
+		{atom, integer} ->
+		    {'fun', Pos,
+		     {function, concrete(F), concrete(A)}};
+		_ ->
+		    Node
+	    end;
 	module_qualifier ->
 	    M = module_qualifier_argument(Name),
 	    Name1 = module_qualifier_body(Name),
-- 
2.1.4