Mercurial > projects > ddmd
diff dmd/TemplateInstance.d @ 79:43073c7c7769
updated to 2.035
also implemented a few missing functions
still crashes in Import.importAll though
author | Trass3r |
---|---|
date | Mon, 30 Aug 2010 03:57:51 +0200 |
parents | ad4792a1cfd6 |
children | be2ab491772e |
line wrap: on
line diff
--- a/dmd/TemplateInstance.d Sun Aug 29 14:39:08 2010 +0100 +++ b/dmd/TemplateInstance.d Mon Aug 30 03:57:51 2010 +0200 @@ -524,7 +524,7 @@ try { - static int nest; +// static int nest; //printf("%d\n", nest); if (++nest > 500) { @@ -578,7 +578,24 @@ if (sc.func || dosemantic3) { - semantic3(sc2); + try + { +// static int nest; // TODO: + if (++nest > 300) + { + global.gag = 0; // ensure error message gets printed + error("recursive expansion"); + fatal(); + } + semantic3(sc2); + --nest; + } + catch (Exception e) + { + global.gag = 0; // ensure error message gets printed + error("recursive expansion"); + fatal(); + } } Laftersemantic: @@ -703,12 +720,14 @@ override Dsymbol toAlias() // resolve real symbol { - version (LOG) { - printf("TemplateInstance.toAlias()\n"); + version (LOG) + { + writef("TemplateInstance.toAlias()\n"); } if (!inst) { error("cannot resolve forward reference"); + errors = 1; return this; }