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);