view run/i/interface_24_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@	<deewiant@gmail.com>
// @date@	2006-04-04
// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=85

module dstress.run.i.interface_24_B;

interface I {
	I[] foo();
	int x();
}

class Class : I {
	I[] foo() {
		I[] f = new Class[1];
		f[0] = new Class();
		return f;
	}

	int x() {
		return 1;
	}
}

int main() {
	Class c = new Class();
	I i = c;

	if(c.x() != 1){
		assert(0);
	}

	if(i.x() != 1){
		assert(0);
	}

	I[] ii = c.foo();
	i = ii[0];

	if(i.x() != 1){
		assert(0);
	}

	return 0;
}