comparison dmd2/declaration.h @ 1526:54b3c1394d62

Merged dmdfe 2.031.
author Robert Clipsham <robert@octarineparrot.com>
date Tue, 07 Jul 2009 02:26:11 +0100
parents f62347c22d81
children e4f7b5d9c68a
comparison
equal deleted inserted replaced
1525:d28cd7c45267 1526:54b3c1394d62
1 1
2 // Compiler implementation of the D programming language 2 // Compiler implementation of the D programming language
3 // Copyright (c) 1999-2008 by Digital Mars 3 // Copyright (c) 1999-2009 by Digital Mars
4 // All Rights Reserved 4 // All Rights Reserved
5 // written by Walter Bright 5 // written by Walter Bright
6 // http://www.digitalmars.com 6 // http://www.digitalmars.com
7 // License for redistribution is by either the Artistic License 7 // License for redistribution is by either the Artistic License
8 // in artistic.txt, or the GNU General Public License in gnu.txt. 8 // in artistic.txt, or the GNU General Public License in gnu.txt.
267 // 2: on stack, run destructor anyway 267 // 2: on stack, run destructor anyway
268 int canassign; // it can be assigned to 268 int canassign; // it can be assigned to
269 Dsymbol *aliassym; // if redone as alias to another symbol 269 Dsymbol *aliassym; // if redone as alias to another symbol
270 Expression *value; // when interpreting, this is the value 270 Expression *value; // when interpreting, this is the value
271 // (NULL if value not determinable) 271 // (NULL if value not determinable)
272 Scope *scope; // !=NULL means context to use
273 272
274 VarDeclaration(Loc loc, Type *t, Identifier *id, Initializer *init); 273 VarDeclaration(Loc loc, Type *t, Identifier *id, Initializer *init);
275 Dsymbol *syntaxCopy(Dsymbol *); 274 Dsymbol *syntaxCopy(Dsymbol *);
276 void semantic(Scope *sc); 275 void semantic(Scope *sc);
277 void semantic2(Scope *sc); 276 void semantic2(Scope *sc);
666 int introducing; // !=0 if 'introducing' function 665 int introducing; // !=0 if 'introducing' function
667 Type *tintro; // if !=NULL, then this is the type 666 Type *tintro; // if !=NULL, then this is the type
668 // of the 'introducing' function 667 // of the 'introducing' function
669 // this one is overriding 668 // this one is overriding
670 int inferRetType; // !=0 if return type is to be inferred 669 int inferRetType; // !=0 if return type is to be inferred
671 Scope *scope; // !=NULL means context to use
672 670
673 // Things that should really go into Scope 671 // Things that should really go into Scope
674 int hasReturnExp; // 1 if there's a return exp; statement 672 int hasReturnExp; // 1 if there's a return exp; statement
675 // 2 if there's a throw statement 673 // 2 if there's a throw statement
676 // 4 if there's an assert(0) 674 // 4 if there's an assert(0)