Mercurial > projects > ldc
comparison test/classinfo1.d @ 102:027b8d8b71ec trunk
[svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
Basically it tries to do the following in order: Resolve types, Declare symbols, Create constant initializers, Apply initializers, Generate functions bodies.
ClassInfo is now has the most useful(biased?) members working.
Probably other stuf...
author | lindquist |
---|---|
date | Sun, 18 Nov 2007 06:52:57 +0100 |
parents | 5071469303d4 |
children | 368547b1cbe6 |
comparison
equal
deleted
inserted
replaced
101:169fda3a77d4 | 102:027b8d8b71ec |
---|---|
1 module classinfo1; | 1 module classinfo1; |
2 | 2 |
3 class C | 3 class NoPtrs |
4 { | 4 { |
5 } | |
6 | |
7 class HasPtrs | |
8 { | |
9 void* p; | |
5 } | 10 } |
6 | 11 |
7 void main() | 12 void main() |
8 { | 13 { |
9 ClassInfo ci = C.classinfo; | 14 { |
15 ClassInfo ci = NoPtrs.classinfo; | |
16 char[] name = ci.name; | |
17 printf("%.*s\n", name.length, name.ptr); | |
18 assert(ci.name == "classinfo1.NoPtrs"); | |
19 assert(ci.flags == 2); | |
20 } | |
21 { | |
22 ClassInfo ci = HasPtrs.classinfo; | |
23 char[] name = ci.name; | |
24 printf("%.*s\n", name.length, name.ptr); | |
25 assert(ci.name == "classinfo1.HasPtrs"); | |
26 assert(ci.flags == 0); | |
27 } | |
10 } | 28 } |