0
|
1 module dmd.ClassInfoDeclaration;
|
|
2
|
114
|
3 import dmd.common;
|
0
|
4 import dmd.VarDeclaration;
|
|
5 import dmd.ClassDeclaration;
|
|
6 import dmd.Dsymbol;
|
|
7 import dmd.Scope;
|
|
8 import dmd.Loc;
|
79
|
9 import dmd.OutBuffer;
|
0
|
10 import dmd.Id;
|
|
11 import dmd.STC;
|
|
12
|
|
13 import dmd.backend.Symbol;
|
|
14 import dmd.backend.Classsym;
|
|
15 import dmd.backend.FL;
|
|
16 import dmd.backend.SFL;
|
|
17 import dmd.codegen.Util;
|
|
18 import dmd.backend.SC;
|
|
19 import dmd.backend.Util;
|
|
20
|
|
21 class ClassInfoDeclaration : VarDeclaration
|
|
22 {
|
100
|
23 ClassDeclaration cd;
|
0
|
24
|
100
|
25 this(ClassDeclaration cd)
|
0
|
26 {
|
|
27 super(Loc(0), ClassDeclaration.classinfo.type, cd.ident, null);
|
|
28
|
|
29 this.cd = cd;
|
|
30 storage_class = STC.STCstatic | STC.STCgshared;
|
|
31 }
|
|
32
|
100
|
33 override Dsymbol syntaxCopy(Dsymbol)
|
0
|
34 {
|
100
|
35 assert(false); // should never be produced by syntax
|
|
36 return null;
|
0
|
37 }
|
|
38
|
100
|
39 override void semantic(Scope sc)
|
0
|
40 {
|
|
41 }
|
|
42
|
100
|
43 override void emitComment(Scope sc)
|
0
|
44 {
|
|
45 }
|
|
46
|
79
|
47 override void toJsonBuffer(OutBuffer buf)
|
|
48 {
|
|
49 }
|
100
|
50
|
|
51 override Symbol* toSymbol()
|
0
|
52 {
|
|
53 return cd.toSymbol();
|
|
54 }
|
72
|
55 }
|