annotate test/interface6.d @ 114:5880c12dba83 trunk

[svn r118] Fixed dynamic casts. Fixed a few interface bugs.
author lindquist
date Sun, 25 Nov 2007 00:19:13 +0100
parents
children 44a95ac7368a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
114
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
1 module interface6;
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
2
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
3 interface I
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
4 {
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
5 void Ifunc();
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
6 }
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
7
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
8 interface J
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
9 {
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
10 void Jfunc();
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
11 }
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
12
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
13 class C : I,J
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
14 {
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
15 int i;
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
16 int j;
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
17 void Ifunc()
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
18 {
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
19 i++;
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
20 }
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
21 void Jfunc()
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
22 {
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
23 j++;
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
24 }
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
25 }
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
26
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
27 void main()
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
28 {
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
29 C c = new C;
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
30 c.Ifunc();
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
31 c.Jfunc();
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
32 I i = c;
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
33 i.Ifunc();
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
34 J j = c;
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
35 j.Jfunc();
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
36 C c2 = cast(C)i;
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
37 c2.Ifunc();
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
38 c2.Jfunc();
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
39 C c3 = cast(C)j;
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
40 c3.Ifunc();
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
41 c3.Jfunc();
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
42 assert(c.i == 4);
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
43 assert(c.j == 4);
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents:
diff changeset
44 }