Mercurial > projects > ldc
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) |