Mercurial > projects > ldc
comparison dmd2/template.h @ 1526:54b3c1394d62
Merged dmdfe 2.031.
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Tue, 07 Jul 2009 02:26:11 +0100 |
parents | 638d16625da2 |
children |
comparison
equal
deleted
inserted
replaced
1525:d28cd7c45267 | 1526:54b3c1394d62 |
---|---|
59 Array instances; // array of TemplateInstance's | 59 Array instances; // array of TemplateInstance's |
60 | 60 |
61 TemplateDeclaration *overnext; // next overloaded TemplateDeclaration | 61 TemplateDeclaration *overnext; // next overloaded TemplateDeclaration |
62 TemplateDeclaration *overroot; // first in overnext list | 62 TemplateDeclaration *overroot; // first in overnext list |
63 | 63 |
64 Scope *scope; | 64 int semanticRun; // 1 semantic() run |
65 | |
65 Dsymbol *onemember; // if !=NULL then one member of this template | 66 Dsymbol *onemember; // if !=NULL then one member of this template |
66 | 67 |
67 int literal; // this template declaration is a literal | 68 int literal; // this template declaration is a literal |
68 | 69 |
69 TemplateDeclaration(Loc loc, Identifier *id, TemplateParameters *parameters, | 70 TemplateDeclaration(Loc loc, Identifier *id, TemplateParameters *parameters, |
282 TemplateInstance *tinst; // enclosing template instance | 283 TemplateInstance *tinst; // enclosing template instance |
283 ScopeDsymbol *argsym; // argument symbol table | 284 ScopeDsymbol *argsym; // argument symbol table |
284 AliasDeclaration *aliasdecl; // !=NULL if instance is an alias for its | 285 AliasDeclaration *aliasdecl; // !=NULL if instance is an alias for its |
285 // sole member | 286 // sole member |
286 WithScopeSymbol *withsym; // if a member of a with statement | 287 WithScopeSymbol *withsym; // if a member of a with statement |
287 int semanticdone; // has semantic() been done? | 288 int semanticRun; // has semantic() been done? |
288 int semantictiargsdone; // has semanticTiargs() been done? | 289 int semantictiargsdone; // has semanticTiargs() been done? |
289 int nest; // for recursion detection | 290 int nest; // for recursion detection |
290 int havetempdecl; // 1 if used second constructor | 291 int havetempdecl; // 1 if used second constructor |
291 Dsymbol *isnested; // if referencing local symbols, this is the context | 292 Dsymbol *isnested; // if referencing local symbols, this is the context |
292 int errors; // 1 if compiled with errors | 293 int errors; // 1 if compiled with errors |
340 | 341 |
341 struct TemplateMixin : TemplateInstance | 342 struct TemplateMixin : TemplateInstance |
342 { | 343 { |
343 Array *idents; | 344 Array *idents; |
344 Type *tqual; | 345 Type *tqual; |
345 | |
346 Scope *scope; // for forward referencing | |
347 | 346 |
348 TemplateMixin(Loc loc, Identifier *ident, Type *tqual, Array *idents, Objects *tiargs); | 347 TemplateMixin(Loc loc, Identifier *ident, Type *tqual, Array *idents, Objects *tiargs); |
349 Dsymbol *syntaxCopy(Dsymbol *s); | 348 Dsymbol *syntaxCopy(Dsymbol *s); |
350 void semantic(Scope *sc); | 349 void semantic(Scope *sc); |
351 void semantic2(Scope *sc); | 350 void semantic2(Scope *sc); |