annotate dmd/TypeInfoClassDeclaration.d @ 192:eb38fdcb3e62 default tip

updated to compile with dmd2.062
author korDen
date Sat, 02 Mar 2013 01:25:52 -0800
parents b0d41ff5e0df
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
72
2e2a5c3f943a reduced warnings by adding override to the methods
Trass3r
parents: 0
diff changeset
1 module dmd.TypeInfoClassDeclaration;
2e2a5c3f943a reduced warnings by adding override to the methods
Trass3r
parents: 0
diff changeset
2
114
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents: 73
diff changeset
3 import dmd.common;
72
2e2a5c3f943a reduced warnings by adding override to the methods
Trass3r
parents: 0
diff changeset
4 import dmd.Type;
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
5 import dmd.TypeInfoDeclaration;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
6 import dmd.ClassInfoDeclaration;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
7 import dmd.TypeClass;
174
af724d3510d7 lot os toCBuffer methods implemented
korDen
parents: 130
diff changeset
8 import dmd.Global;
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
9 import dmd.TY;
72
2e2a5c3f943a reduced warnings by adding override to the methods
Trass3r
parents: 0
diff changeset
10 import dmd.Util;
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
11 import dmd.backend.dt_t;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
12 import dmd.backend.Util;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
13 import dmd.backend.TYM;
72
2e2a5c3f943a reduced warnings by adding override to the methods
Trass3r
parents: 0
diff changeset
14 import dmd.backend.Symbol;
2e2a5c3f943a reduced warnings by adding override to the methods
Trass3r
parents: 0
diff changeset
15
187
b0d41ff5e0df Added expandability scheme outlined in http://www.dsource.org/forums/viewtopic.php?t=5659&sid=6f2150ff5b0bffcd47512a6a7608d218
Abscissa
parents: 178
diff changeset
16 import dmd.DDMDExtensions;
b0d41ff5e0df Added expandability scheme outlined in http://www.dsource.org/forums/viewtopic.php?t=5659&sid=6f2150ff5b0bffcd47512a6a7608d218
Abscissa
parents: 178
diff changeset
17
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
18 class TypeInfoClassDeclaration : TypeInfoDeclaration
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
19 {
187
b0d41ff5e0df Added expandability scheme outlined in http://www.dsource.org/forums/viewtopic.php?t=5659&sid=6f2150ff5b0bffcd47512a6a7608d218
Abscissa
parents: 178
diff changeset
20 mixin insertMemberExtension!(typeof(this));
b0d41ff5e0df Added expandability scheme outlined in http://www.dsource.org/forums/viewtopic.php?t=5659&sid=6f2150ff5b0bffcd47512a6a7608d218
Abscissa
parents: 178
diff changeset
21
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
22 this(Type tinfo)
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
23 {
178
e3afd1303184 Many small bugs fixed
korDen
parents: 174
diff changeset
24 register();
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
25 super(tinfo, 0);
174
af724d3510d7 lot os toCBuffer methods implemented
korDen
parents: 130
diff changeset
26 type = global.typeinfoclass.type;
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
27 }
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
28
130
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 114
diff changeset
29 override Symbol* toSymbol()
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 114
diff changeset
30 {
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 114
diff changeset
31 //printf("TypeInfoClassDeclaration::toSymbol(%s), linkage = %d\n", toChars(), linkage);
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 114
diff changeset
32 assert(tinfo.ty == TY.Tclass);
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 114
diff changeset
33 auto tc = cast(TypeClass)tinfo;
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 114
diff changeset
34 return tc.sym.toSymbol();
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 114
diff changeset
35 }
174
af724d3510d7 lot os toCBuffer methods implemented
korDen
parents: 130
diff changeset
36
72
2e2a5c3f943a reduced warnings by adding override to the methods
Trass3r
parents: 0
diff changeset
37 override void toDt(dt_t** pdt)
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
38 {
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
39 //printf("TypeInfoClassDeclaration::toDt() %s\n", tinfo->toChars());
130
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 114
diff changeset
40 assert(0);
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 114
diff changeset
41 static if(false) {
174
af724d3510d7 lot os toCBuffer methods implemented
korDen
parents: 130
diff changeset
42 dtxoff(pdt, global.typeinfoclass.toVtblSymbol(), 0, TYnptr); // vtbl for TypeInfoClass
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
43 dtdword(pdt, 0); // monitor
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
44
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
45 assert(tinfo.ty == Tclass);
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
46
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
47 TypeClass tc = cast(TypeClass)tinfo;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
48
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
49 if (!tc.sym.vclassinfo)
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
50 tc.sym.vclassinfo = new ClassInfoDeclaration(tc.sym);
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
51
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
52 Symbol* s = tc.sym.vclassinfo.toSymbol();
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
53 assert(s.Sxtrnnum == 0);
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
54
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
55 dtxoff(pdt, s, 0, TYnptr); // ClassInfo for tinfo
130
60bb0fe4563e dmdfe 2.037 first main iteration
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents: 114
diff changeset
56 }
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
57 }
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
58 }
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
59