changeset 182:4e703658eca0

merge
author Anders Halager <halager@gmail.com>
date Fri, 25 Jul 2008 01:40:08 +0200
parents 59cd211a1bd3 (current diff) 29324df1d649 (diff)
children 8ea749b7da91
files
diffstat 2 files changed, 17 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/sema/AstAction.d	Fri Jul 25 01:39:01 2008 +0200
+++ b/sema/AstAction.d	Fri Jul 25 01:40:08 2008 +0200
@@ -97,7 +97,7 @@
         else if (type.tok.type == Tok.Interface)
             d = new InterfaceDecl(identifierFromTok(id.tok));
         else
-            d = new VarDecl(handleType(type), identifierFromTok(id.tok), exp);
+            d = new VarDecl(handleType(type), id ? identifierFromTok(id.tok) : null, exp);
 
         d.att = att;
         return d;
--- a/sema/ScopeBuilder.d	Fri Jul 25 01:39:01 2008 +0200
+++ b/sema/ScopeBuilder.d	Fri Jul 25 01:40:08 2008 +0200
@@ -78,14 +78,18 @@
     override void visitVarDecl(VarDecl d)
     {
         visitExp(d.varType);
-        visitExp(d.identifier);
+        if(d.identifier)
+            visitExp(d.identifier);
         
         if (d.init)
             visitExp(d.init);
 
-        DType t = typeOf(d.varType, d.env);
-        d.sym = sf.get(current.symbol, t, d.identifier, d);
-        d.sym.type = t;
+        if(d.identifier)
+        {
+            DType t = typeOf(d.varType, d.env);
+            d.sym = sf.get(current.symbol, t, d.identifier, d);
+            d.sym.type = t;
+        }
     }
 
     override void visitStructDecl(StructDecl s)
@@ -398,11 +402,14 @@
             --need_push;
         }
 
-        auto sc = current();
-        sc.put(d.identifier.get, d);
-        d.env = sc;
-        visitExp(d.varType);
-        visitExp(d.identifier);
+        if(d.identifier)
+        {
+            auto sc = current();
+            sc.put(d.identifier.get, d);
+            d.env = sc;
+            visitExp(d.varType);
+            visitExp(d.identifier);
+        }
     }
 
     override void visitStructDecl(StructDecl s)