changeset 216:17b5647d8463

structs/unions and setters/getters Vathix <vathix@dprogramming.com> 2004-12-29 news:opsjr1fu1jkcck4r@tc3-ppp187.dialup.wzrd.com nntp://digitalmars.com/digitalmars.D.bugs/2620
author thomask
date Wed, 29 Dec 2004 23:35:31 +0000
parents b79bc0c00bfc
children d28e9d734c7f
files run/bug_e2ir_141_A.d run/bug_e2ir_141_B.d run/bug_e2ir_141_C.d run/bug_e2ir_141_D.d
diffstat 4 files changed, 127 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/bug_e2ir_141_A.d	Wed Dec 29 23:35:31 2004 +0000
@@ -0,0 +1,33 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Vathix <vathix@dprogramming.com>
+// @date@	2004-12-29
+// @uri@	news:opsjr1fu1jkcck4r@tc3-ppp187.dialup.wzrd.com
+// @url@	nntp://digitalmars.com/digitalmars.D.bugs/2620
+
+module dstress.run.bug_e2ir_141_A;
+
+struct MyStruct{
+	int i;
+}
+
+class MyClass{
+	static MyStruct prop(){
+		MyStruct s;
+		return s;
+	}
+
+	static void prop(MyStruct s){
+	}
+}
+
+int main(){
+	MyClass c = new MyClass();
+	c.prop = true ? MyClass.prop : MyClass.prop;
+	assert(c.prop.i == 0);
+	c.prop.i == 7;
+	assert(c.prop.i == 7);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/bug_e2ir_141_B.d	Wed Dec 29 23:35:31 2004 +0000
@@ -0,0 +1,29 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Vathix <vathix@dprogramming.com>
+// @date@	2004-12-29
+// @uri@	news:opsjr1fu1jkcck4r@tc3-ppp187.dialup.wzrd.com
+// @url@	nntp://digitalmars.com/digitalmars.D.bugs/2620
+
+module dstress.run.bug_e2ir_141_B;
+
+class MyClass{
+	static int prop(){
+		int i;
+		return i;
+	}
+
+	static void prop(int i){
+	}
+}
+
+int main(){
+	MyClass c = new MyClass();
+	c.prop = true ? MyClass.prop : MyClass.prop;
+	assert(c.prop == 0);
+	c.prop == 7;
+	assert(c.prop == 7);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/bug_e2ir_141_C.d	Wed Dec 29 23:35:31 2004 +0000
@@ -0,0 +1,29 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Vathix <vathix@dprogramming.com>
+// @date@	2004-12-29
+// @uri@	news:opsjr1fu1jkcck4r@tc3-ppp187.dialup.wzrd.com
+// @url@	nntp://digitalmars.com/digitalmars.D.bugs/2620
+
+module dstress.run.bug_e2ir_141_C;
+
+class MyClass{
+	static MyClass prop(){
+		return dummy;
+	}
+
+	static void prop(MyClass o){
+	}
+}
+
+MyClass dummy;
+
+int main(){
+	dummy = new MyClass();
+	MyClass c = new MyClass();
+	c.prop = true ? MyClass.prop : MyClass.prop;
+	assert(c.prop === dummy);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/bug_e2ir_141_D.d	Wed Dec 29 23:35:31 2004 +0000
@@ -0,0 +1,36 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Vathix <vathix@dprogramming.com>
+// @date@	2004-12-29
+// @uri@	news:opsjr1fu1jkcck4r@tc3-ppp187.dialup.wzrd.com
+// @url@	nntp://digitalmars.com/digitalmars.D.bugs/2620
+
+module dstress.run.bug_e2ir_141_D;
+
+union MyUnion{
+	int a;
+	int b;	
+}
+
+class MyClass{
+	static MyUnion prop(){
+		MyUnion u;
+		return u;
+	}
+
+	static void prop(MyUnion u){
+	}
+}
+
+MyClass dummy;
+
+int main(){
+	MyClass c = new MyClass();
+	c.prop = true ? MyClass.prop : MyClass.prop;
+	assert(c.prop.a == 0);
+	c.prop.a = 1;
+	assert(c.prop.b == 1);
+	return 0;
+}