diff dmd/declaration.c @ 1401:e2cf1f67ca33

Don't print the entire declaration of the alliassee when `->toChars()` is called on an `AliasDeclaration`; just printing the name will do. This fixes #305, which otherwise tries to generate {{{ class E { void A() { alias /* recurse into E->toCBuffer() */ m; } } }}} by way of an infinite recursion (causing a segfault when the stack runs out).
author Frits van Bommel <fvbommel wxs.nl>
date Wed, 20 May 2009 16:20:59 +0200
parents 8026319762be
children 93644700a0b3
line wrap: on
line diff
--- a/dmd/declaration.c	Tue May 19 22:35:08 2009 +0200
+++ b/dmd/declaration.c	Wed May 20 16:20:59 2009 +0200
@@ -575,7 +575,7 @@
     {
 	if (haliassym)
 	{
-	    haliassym->toCBuffer(buf, hgs);
+	    buf->writestring(haliassym->toChars());
 	    buf->writeByte(' ');
 	    buf->writestring(ident->toChars());
 	}
@@ -587,7 +587,7 @@
     {
 	if (aliassym)
 	{
-	    aliassym->toCBuffer(buf, hgs);
+	    buf->writestring(aliassym->toChars());
 	    buf->writeByte(' ');
 	    buf->writestring(ident->toChars());
 	}