annotate tests/mini/s.d @ 468:45a67b6f1310

Removed the 'needsstorage' thing from Dsymbol. Arguments are not always given storage when applicable. This is not longer treat specially in this regard. Code for accessing nested variables and contexts rewritten. Probably more. Fairly well tested.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 04 Aug 2008 02:59:34 +0200
parents 1bb99290e03a
children d92acb81a583
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
138
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
1 module s;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
2
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
3 interface Inter
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
4 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
5 void inter();
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
6 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
7
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
8 interface Inter2
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
9 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
10 void inter2();
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
11 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
12
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
13 interface InterOne : Inter
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
14 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
15 void interOne();
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
16 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
17
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
18 abstract class ClassAbstract : InterOne
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
19 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
20 abstract void inter();
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
21 abstract void interOne();
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
22 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
23
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
24 class TheClassOne : ClassAbstract
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
25 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
26 void inter()
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
27 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
28 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
29 void interOne()
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
30 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
31 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
32 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
33
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
34 class TheClassTwo : TheClassOne, Inter2
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
35 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
36 long l;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
37 double d;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
38
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
39 void inter2()
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
40 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
41 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
42 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
43
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
44 extern(C) int printf(char*, ...);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
45
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
46 void main()
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
47 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
48 printf("classinfo test\n");
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
49 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
50 auto c = new TheClassOne;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
51 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
52 auto ci = c.classinfo;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
53 printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
54 printf("ci.interfaces.length = %lu\n", ci.interfaces.length);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
55 printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
56 printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
57 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
58 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
59 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
60 auto c = new TheClassTwo;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
61 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
62 auto ci = c.classinfo;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
63 printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
64 printf("ci.interfaces.length = %lu\n", ci.interfaces.length);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
65 printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
66 printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
67 printf("i[2] = %.*s\n", ci.interfaces[2].classinfo.name.length, ci.interfaces[2].classinfo.name.ptr);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
68 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
69 auto i = cast(InterOne)c;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
70 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
71 auto ci = i.classinfo;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
72 printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
73 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
74 auto i2 = cast(Inter2)i;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
75 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
76 auto ci = i2.classinfo;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
77 printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
78 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
79 auto o = cast(Object)i2;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
80 {
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
81 auto ci = o.classinfo;
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
82 printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
83 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
84 }
aeddd4d533b3 [svn r142] minor fix to dynamic casts.
lindquist
parents:
diff changeset
85 }