Mercurial > projects > ldc
annotate tests/mini/interface2.d @ 650:aa6a0b7968f7
Added test case for bug #100
Removed dubious check for not emitting static private global in other modules without access. This should be handled properly somewhere else, it's causing unresolved global errors for stuff that should work (in MiniD)
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sun, 05 Oct 2008 17:28:15 +0200 |
parents | 1bb99290e03a |
children |
rev | line source |
---|---|
113
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
1 module interface2; |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
2 |
133
44a95ac7368a
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents:
113
diff
changeset
|
3 extern(C) int printf(char*,...); |
44a95ac7368a
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents:
113
diff
changeset
|
4 |
113
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
5 interface A |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
6 { |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
7 void a(); |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
8 } |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
9 |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
10 interface B |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
11 { |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
12 void b(); |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
13 } |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
14 |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
15 class C : A,B |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
16 { |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
17 int i = 0; |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
18 override void a() |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
19 { |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
20 printf("hello from C.a\n"); |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
21 } |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
22 override void b() |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
23 { |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
24 printf("hello from C.b\n"); |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
25 } |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
26 } |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
27 |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
28 void main() |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
29 { |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
30 scope c = new C; |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
31 {c.a(); |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
32 c.b();} |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
33 {A a = c; |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
34 a.a();} |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
35 {B b = c; |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
36 b.b();} |
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
diff
changeset
|
37 } |