diff tests/mini/classes13_bug239.d @ 1136:9d308feaec27

Fix #239.
author Christian Kamm <kamm incasoftware de>
date Tue, 24 Mar 2009 14:33:57 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes13_bug239.d	Tue Mar 24 14:33:57 2009 +0100
@@ -0,0 +1,28 @@
+extern(C) int printf(char*, ...);
+
+class A {
+    bool Afoo = false;
+    void foo() { Afoo = true; }
+}
+
+class B : A {}
+
+class C : B {
+    bool Cfoo = false;
+    void foo() { Cfoo = true; }
+}
+
+void main()
+{
+        scope c1 = new C();
+        c1.foo();
+	assert(c1.Cfoo && !c1.Afoo);
+	
+	scope c2 = new C();
+	c2.B.foo();
+	assert(!c2.Cfoo && c2.Afoo);
+
+	scope c3 = new C();
+	c3.A.foo();
+	assert(!c3.Cfoo && c3.Afoo);
+}