Fix #198 and #199 by making CTFE on static struct initializers work.

Renamed SymbolDeclaration to StaticStructInitDeclaration to make its usage clearer.
This commit is contained in:
Christian Kamm
2009-02-01 20:20:56 +01:00
parent 07649678db
commit 01f19c466c
9 changed files with 64 additions and 29 deletions
+4 -5
View File
@@ -278,19 +278,18 @@ struct VarDeclaration : Declaration
/**************************************************************/
// This is a shell around a back end symbol
// LDC uses this to denote static struct initializers
struct SymbolDeclaration : Declaration
struct StaticStructInitDeclaration : Declaration
{
Symbol *sym;
StructDeclaration *dsym;
SymbolDeclaration(Loc loc, Symbol *s, StructDeclaration *dsym);
StaticStructInitDeclaration(Loc loc, StructDeclaration *dsym);
Symbol *toSymbol();
// Eliminate need for dynamic_cast
SymbolDeclaration *isSymbolDeclaration() { return (SymbolDeclaration *)this; }
StaticStructInitDeclaration *isStaticStructInitDeclaration() { return (StaticStructInitDeclaration *)this; }
};
struct ClassInfoDeclaration : VarDeclaration