Mercurial > projects > dang
changeset 180:29324df1d649
Fixed a but that did't allow type-only params.
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Fri, 25 Jul 2008 01:34:12 +0200 |
parents | 2a1a635bd531 |
children | 4e703658eca0 |
files | sema/AstAction.d sema/ScopeBuilder.d |
diffstat | 2 files changed, 17 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/sema/AstAction.d Fri Jul 25 01:21:07 2008 +0200 +++ b/sema/AstAction.d Fri Jul 25 01:34:12 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:21:07 2008 +0200 +++ b/sema/ScopeBuilder.d Fri Jul 25 01:34:12 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)