Mercurial > projects > ddmd
annotate dmd/LinkDeclaration.d @ 178:e3afd1303184
Many small bugs fixed
Made all classes derive from TObject to detect memory leaks (functionality is disabled for now)
Began work on overriding backend memory allocations (to avoid memory leaks)
author | korDen |
---|---|
date | Sun, 17 Oct 2010 07:42:00 +0400 |
parents | e28b18c23469 |
children | b0d41ff5e0df |
rev | line source |
---|---|
0 | 1 module dmd.LinkDeclaration; |
2 | |
114 | 3 import dmd.common; |
0 | 4 import dmd.AttribDeclaration; |
5 import dmd.LINK; | |
6 import dmd.OutBuffer; | |
7 import dmd.HdrGenState; | |
8 import dmd.Scope; | |
9 import dmd.Dsymbol; | |
10 import dmd.Array; | |
11 | |
12 class LinkDeclaration : AttribDeclaration | |
13 { | |
14 LINK linkage; | |
15 | |
74
7e0d548de9e6
Switch Arrays of Dsymbols to the new templated Vector type
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents:
72
diff
changeset
|
16 this(LINK p, Dsymbols decl) |
0 | 17 { |
178 | 18 register(); |
0 | 19 super(decl); |
20 //printf("LinkDeclaration(linkage = %d, decl = %p)\n", p, decl); | |
21 linkage = p; | |
22 } | |
23 | |
72 | 24 override Dsymbol syntaxCopy(Dsymbol s) |
0 | 25 { |
26 assert(false); | |
27 } | |
28 | |
72 | 29 override void setScope(Scope sc) |
0 | 30 { |
31 //printf("LinkDeclaration::setScope(linkage = %d, decl = %p)\n", linkage, decl); | |
32 if (decl) | |
33 { | |
34 setScopeNewSc(sc, sc.stc, linkage, sc.protection, sc.explicitProtection, sc.structalign); | |
35 } | |
36 } | |
37 | |
72 | 38 override void semantic(Scope sc) |
0 | 39 { |
40 //printf("LinkDeclaration::semantic(linkage = %d, decl = %p)\n", linkage, decl); | |
41 if (decl) | |
42 { | |
43 semanticNewSc(sc, sc.stc, linkage, sc.protection, sc.explicitProtection, sc.structalign); | |
44 } | |
45 } | |
46 | |
72 | 47 override void semantic3(Scope sc) |
0 | 48 { |
49 //printf("LinkDeclaration::semantic3(linkage = %d, decl = %p)\n", linkage, decl); | |
50 if (decl) | |
51 { | |
52 LINK linkage_save = sc.linkage; | |
53 | |
54 sc.linkage = linkage; | |
77
ad4792a1cfd6
more D-ification container accessing
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents:
74
diff
changeset
|
55 foreach(Dsymbol s; decl) |
0 | 56 s.semantic3(sc); |
57 sc.linkage = linkage_save; | |
58 } | |
59 else | |
60 { | |
61 sc.linkage = linkage; | |
62 } | |
63 } | |
64 | |
72 | 65 override void toCBuffer(OutBuffer buf, HdrGenState* hgs) |
0 | 66 { |
67 assert(false); | |
68 } | |
69 | |
72 | 70 override string toChars() |
0 | 71 { |
72 assert(false); | |
73 } | |
72 | 74 } |