annotate run/i/interface_23_A.d @ 1319:81222734adf3

sed'ed replacement of new:...http.d.puremagic.co... with http://d.puremagic.com/issues/show_bug.cgi?...
author thomask
date Sun, 31 Dec 2006 19:58:06 +0000
parents 47ef91337f5f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
931
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
1 // $HeadURL$
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
2 // $Date$
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
3 // $Author$
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
4
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
5 // @author@ <smjg@iname.com>
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
6 // @date@ 2006-03-22
1319
81222734adf3 sed'ed replacement of new:...http.d.puremagic.co... with http://d.puremagic.com/issues/show_bug.cgi?...
thomask
parents: 931
diff changeset
7 // @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=65
931
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
8
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
9 module dstress.run.i.interface_23_A;
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
10
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
11 int status;
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
12
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
13 interface I {
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
14 }
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
15
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
16 class Parent {
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
17 I test() {
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
18 status += 7;
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
19 return new Child(42);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
20 }
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
21 }
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
22
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
23 class Child : Parent, I {
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
24 int data;
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
25
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
26 this(int d) {
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
27 data = d;
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
28 }
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
29
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
30 override Child test() {
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
31 status += 1;
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
32 return new Child(69);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
33 }
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
34 }
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
35
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
36 int main() {
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
37 Child a = new Child(105);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
38 assert(a);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
39 assert(status == 0);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
40 assert(a.data == 105);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
41
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
42 Parent p = a;
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
43 assert(p);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
44 assert(status == 0);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
45
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
46 Child c = a.test();
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
47 assert(c);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
48 assert(status == 1);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
49 assert(c.data == 69);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
50
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
51 I i = p.test();
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
52 assert(i);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
53 assert(status == 2);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
54
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
55 Child d = cast(Child) i;
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
56 assert(d);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
57 assert(status == 2);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
58 assert(d.data == 69);
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
59
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
60 return 0;
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
61 }
47ef91337f5f <smjg@iname.com>
thomask
parents:
diff changeset
62