changeset 1510:f0259cabdf78

[Issue 1140] ICE casting tuple member to tuple struct Don Clugston <clugdbug@yahoo.com.au> 2007-04-03 http://d.puremagic.com/issues/show_bug.cgi?id=1140
author thomask
date Mon, 23 Apr 2007 18:08:12 +0000
parents fba3b66d0276
children fcafb2c9da5f
files run/t/template_struct_09_A.d run/t/template_struct_09_B.d run/t/template_struct_09_C.d
diffstat 3 files changed, 73 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/t/template_struct_09_A.d	Mon Apr 23 18:08:12 2007 +0000
@@ -0,0 +1,23 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Don Clugston <clugdbug@yahoo.com.au>
+// @date@	2007-04-03
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=1140
+// @desc@	[Issue 1140] ICE casting tuple member to tuple struct
+
+module dstress.run.t.template_struct_09_A;
+
+struct Dog(B...){
+	B values;
+
+	static Dog!(B) create(B x) {
+		return *cast(Dog!(B)*)(&x[1]);
+	}
+}
+
+int main(){
+	auto c = Dog!(int, int).create(7, 5);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/t/template_struct_09_B.d	Mon Apr 23 18:08:12 2007 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Don Clugston <clugdbug@yahoo.com.au>
+// @date@	2007-04-03
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=1140
+// @desc@	[Issue 1140] ICE casting tuple member to tuple struct
+
+module dstress.run.t.template_struct_09_B;
+
+struct Cat{
+	int i;
+}
+
+struct Dog(B...){
+	B values;
+
+	static Cat create(B x) {
+		return *cast(Cat*)(&x[1]);
+	}
+}
+
+int main(){
+	auto c = Dog!(int, int).create(7, 5);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/t/template_struct_09_C.d	Mon Apr 23 18:08:12 2007 +0000
@@ -0,0 +1,23 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Don Clugston <clugdbug@yahoo.com.au>
+// @date@	2007-04-03
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=1140
+// @desc@	[Issue 1140] ICE casting tuple member to tuple struct
+
+module dstress.run.t.template_struct_09_C;
+
+class Dog(B...){
+	B values;
+
+	static Dog!(B) create(B x) {
+		return *cast(Dog!(B)*)(&x[1]);
+	}
+}
+
+int main(){
+	auto c = Dog!(int, int).create(7, 5);
+	return 0;
+}