Mercurial > projects > ldc
comparison dmd/scope.h @ 309:d59c363fccad trunk
[svn r330] Implemented synchronized statements.
Changed the tryfinally handlers to a more generalized EnclosingHandler.
Changed ClassInfoS to be mutable so they can be used as locks.
Added new BB after throw ala return/break etc.
author | lindquist |
---|---|
date | Sat, 28 Jun 2008 11:37:53 +0200 |
parents | 5acec6b2eef8 |
children | d4e95db0e62b |
comparison
equal
deleted
inserted
replaced
308:6b62e8cdf970 | 309:d59c363fccad |
---|---|
27 struct ClassDeclaration; | 27 struct ClassDeclaration; |
28 struct AggregateDeclaration; | 28 struct AggregateDeclaration; |
29 struct AnonymousAggregateDeclaration; | 29 struct AnonymousAggregateDeclaration; |
30 struct FuncDeclaration; | 30 struct FuncDeclaration; |
31 struct DocComment; | 31 struct DocComment; |
32 struct EnclosingHandler; | |
32 enum LINK; | 33 enum LINK; |
33 enum PROT; | 34 enum PROT; |
34 | 35 |
35 struct Scope | 36 struct Scope |
36 { | 37 { |
43 FuncDeclaration *func; // function we are in | 44 FuncDeclaration *func; // function we are in |
44 Dsymbol *parent; // parent to use | 45 Dsymbol *parent; // parent to use |
45 LabelStatement *slabel; // enclosing labelled statement | 46 LabelStatement *slabel; // enclosing labelled statement |
46 SwitchStatement *sw; // enclosing switch statement | 47 SwitchStatement *sw; // enclosing switch statement |
47 TryFinallyStatement *tf; // enclosing try finally statement; set inside its finally block | 48 TryFinallyStatement *tf; // enclosing try finally statement; set inside its finally block |
48 TryFinallyStatement *tfOfTry; // enclosing try finally statement; set inside its try block | 49 EnclosingHandler *tfOfTry; // enclosing try-finally, volatile or synchronized statement; set inside its try or body block |
49 Statement *sbreak; // enclosing statement that supports "break" | 50 Statement *sbreak; // enclosing statement that supports "break" |
50 Statement *scontinue; // enclosing statement that supports "continue" | 51 Statement *scontinue; // enclosing statement that supports "continue" |
51 ForeachStatement *fes; // if nested function for ForeachStatement, this is it | 52 ForeachStatement *fes; // if nested function for ForeachStatement, this is it |
52 unsigned offset; // next offset to use in aggregate | 53 unsigned offset; // next offset to use in aggregate |
53 int inunion; // we're processing members of a union | 54 int inunion; // we're processing members of a union |