comparison tests/mini/s.d @ 341:1bb99290e03a trunk

[svn r362] Started merging the old 'test' dir as well as the newer 'tangotests' dir into 'tests/mini' and 'tests/minicomplex'.
author lindquist
date Sun, 13 Jul 2008 02:51:19 +0200
parents tangotests/s.d@aeddd4d533b3
children d92acb81a583
comparison
equal deleted inserted replaced
340:351c0077d0b3 341:1bb99290e03a
1 module s;
2
3 interface Inter
4 {
5 void inter();
6 }
7
8 interface Inter2
9 {
10 void inter2();
11 }
12
13 interface InterOne : Inter
14 {
15 void interOne();
16 }
17
18 abstract class ClassAbstract : InterOne
19 {
20 abstract void inter();
21 abstract void interOne();
22 }
23
24 class TheClassOne : ClassAbstract
25 {
26 void inter()
27 {
28 }
29 void interOne()
30 {
31 }
32 }
33
34 class TheClassTwo : TheClassOne, Inter2
35 {
36 long l;
37 double d;
38
39 void inter2()
40 {
41 }
42 }
43
44 extern(C) int printf(char*, ...);
45
46 void main()
47 {
48 printf("classinfo test\n");
49 {
50 auto c = new TheClassOne;
51 {
52 auto ci = c.classinfo;
53 printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
54 printf("ci.interfaces.length = %lu\n", ci.interfaces.length);
55 printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr);
56 printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr);
57 }
58 }
59 {
60 auto c = new TheClassTwo;
61 {
62 auto ci = c.classinfo;
63 printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
64 printf("ci.interfaces.length = %lu\n", ci.interfaces.length);
65 printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr);
66 printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr);
67 printf("i[2] = %.*s\n", ci.interfaces[2].classinfo.name.length, ci.interfaces[2].classinfo.name.ptr);
68 }
69 auto i = cast(InterOne)c;
70 {
71 auto ci = i.classinfo;
72 printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
73 }
74 auto i2 = cast(Inter2)i;
75 {
76 auto ci = i2.classinfo;
77 printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
78 }
79 auto o = cast(Object)i2;
80 {
81 auto ci = o.classinfo;
82 printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
83 }
84 }
85 }