Mercurial > projects > dstress
view run/i/interface_23_B.d @ 1603:2031b04871b3
Fix broken invariant + synchronized test. Synchronized is not a valid function
attribute for structs!
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sat, 28 Mar 2009 19:17:32 +0100 |
parents | 81222734adf3 |
children |
line wrap: on
line source
// $HeadURL$ // $Date$ // $Author$ // @author@ <smjg@iname.com> // @date@ 2006-03-22 // @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=65 module dstress.run.i.interface_23_B; int status; interface I { } class Parent { I test() { status += 7; return new Child(42); } } class Child : Parent, I { int data; this(int d) { data = d; } Child test() { status += 1; return new Child(69); } } int main() { Child a = new Child(105); assert(a); assert(status == 0); assert(a.data == 105); Parent p = a; assert(p); assert(status == 0); Child c = a.test(); assert(c); assert(status == 1); assert(c.data == 69); I i = p.test(); assert(i); assert(status == 2); Child d = cast(Child) i; assert(d); assert(status == 2); assert(d.data == 69); return 0; }