diff sema/ScopeBuilder.d @ 162:0f38f1a0f06f

Fixed symbol for a functions members.
author Anders Johnsen <skabet@gmail.com>
date Tue, 22 Jul 2008 16:22:58 +0200
parents 57b0b4464a0b
children 362265427838
line wrap: on
line diff
--- a/sema/ScopeBuilder.d	Tue Jul 22 13:39:15 2008 +0200
+++ b/sema/ScopeBuilder.d	Tue Jul 22 16:22:58 2008 +0200
@@ -30,6 +30,15 @@
 
         visitExp(d.returnType);
         visitExp(d.identifier);
+
+        d.sym = current.symbol.createMember(
+                d.identifier.get, 
+                d.type, 
+                d);
+
+        auto old = current.symbol;
+        current.symbol = d.sym;
+
         foreach (arg; d.funcArgs)
             visitDecl(arg);
 
@@ -40,10 +49,8 @@
 
         inFunctionBodyStack.pop();
 
-        d.sym = current.symbol.createMember(
-                d.identifier.get, 
-                d.type, 
-                d);
+        current.symbol = old;
+
     }
 
     override void visitVarDecl(VarDecl d)