view run/c/class_20_I.d @ 1630:d0efa3ae5522 default tip

run/mini/naked_asm5: New x86_64 ABI passes the arguments in reverse order.
author David Nadlinger <code@klickverbot.at>
date Sat, 23 Apr 2011 22:57:32 +0200
parents f4e98d870b57
children
line wrap: on
line source

// $HeadURL$
// $Date$
// $Author$

module dstress.run.c.class_20_I;

interface A{
	int foo();
	int bar();
}

interface B(T) : T{
	int dummy();
	int bar();
}


class C(T) : T, B!(A){
	int foo(){
		return 0;
	}

	int dummy(){
		return 2;
	}

	int bar(){
		return 1;
	}
}

int main(){
	auto c = new C!(A)();

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

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

	if(c.dummy() != 2){
		assert(0);
	}

	A a = c;

	if(a.foo() != 0){
		assert(0);
	}

	if(a.bar() != 1){
		assert(0);
	}

	B!(A) b = c;

	if(b.bar() != 1){
		assert(0);
	}

	if(c.dummy() != 2){
		assert(0);
	}

	return 0;
}