Mercurial > projects > ldc
diff dmd/template.c @ 139:0ab29b838084 trunk
[svn r143] Fixed: a few bugs in debug information, still only line info, but should be correct files now :)
Fixed: tango.io.Console seems to be working now.
author | lindquist |
---|---|
date | Tue, 22 Jan 2008 00:01:16 +0100 |
parents | a7dfa0ed966c |
children | 5acec6b2eef8 |
line wrap: on
line diff
--- a/dmd/template.c Fri Jan 18 20:13:19 2008 +0100 +++ b/dmd/template.c Tue Jan 22 00:01:16 2008 +0100 @@ -1,6 +1,6 @@ // Compiler implementation of the D programming language -// Copyright (c) 1999-2007 by Digital Mars +// Copyright (c) 1999-2008 by Digital Mars // All Rights Reserved // written by Walter Bright // http://www.digitalmars.com @@ -1540,6 +1540,9 @@ else if (tempinst->tempdecl != tp->tempinst->tempdecl) goto Lnomatch; + if (tempinst->tiargs->dim != tp->tempinst->tiargs->dim) + goto Lnomatch; + for (int i = 0; i < tempinst->tiargs->dim; i++) { //printf("test: [%d]\n", i); @@ -3008,6 +3011,8 @@ ea = ea->semantic(sc); ea = ea->optimize(WANTvalue | WANTinterpret); tiargs->data[j] = ea; + if (ea->op == TOKtype) + tiargs->data[j] = ea->type; } else if (sa) { @@ -3292,6 +3297,9 @@ Lsa: Declaration *d = sa->isDeclaration(); if (d && !d->isDataseg() && +#if V2 + !(d->storage_class & STCmanifest) && +#endif (!d->isFuncDeclaration() || d->isFuncDeclaration()->isNested()) && !isTemplateMixin()) {