diff dmd/VersionSymbol.d @ 129:010eb8f0e18d

further work on dmd test suite
author korDen
date Sun, 05 Sep 2010 15:32:22 +0400
parents e28b18c23469
children e3afd1303184
line wrap: on
line diff
--- a/dmd/VersionSymbol.d	Sat Sep 04 01:33:05 2010 +0100
+++ b/dmd/VersionSymbol.d	Sun Sep 05 15:32:22 2010 +0400
@@ -13,14 +13,14 @@
 import dmd.String;
 import dmd.OutBuffer;
 
+/* VersionSymbol's happen for statements like:
+ *	version = identifier;
+ *	version = integer;
+ */
 class VersionSymbol : Dsymbol
 {
     uint level;
 
-	/* VersionSymbol's happen for statements like:
-	 *	version = identifier;
-	 *	version = integer;
-	 */
     this(Loc loc, Identifier ident)
 	{
 		super(ident);
@@ -37,7 +37,10 @@
 	
     override Dsymbol syntaxCopy(Dsymbol s)
 	{
-		assert(false);
+		assert(!s);
+		VersionSymbol ds = new VersionSymbol(loc, ident);
+		ds.level = level;
+		return ds;
 	}
 	
     override bool addMember(Scope sc, ScopeDsymbol s, bool memnum)
@@ -78,11 +81,17 @@
 	
     override void toCBuffer(OutBuffer buf, HdrGenState* hgs)
 	{
-		assert(false);
+		buf.writestring("version = ");
+		if (ident)
+			buf.writestring(ident.toChars());
+		else
+			buf.printf("%u", level);
+		buf.writestring(";");
+		buf.writenl();
 	}
 	
     override string kind()
 	{
-		assert(false);
+		return "version";
 	}
 }