changeset 256:ee9d62b2a74f

inner function in struct member functions Nick <Nick_member@pathlink.com> 2005-01-28 news:ctdtgj$30r$1@digitaldaemon.com nntp://news.digitalmars.com/digitalmars.D.bugs/2784
author thomask
date Sat, 29 Jan 2005 09:28:45 +0000
parents 51e4d92ab66e
children 1c790407bfd8
files run/bug_20050128_A.d run/bug_20050128_B.d
diffstat 2 files changed, 76 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/bug_20050128_A.d	Sat Jan 29 09:28:45 2005 +0000
@@ -0,0 +1,38 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @date@	Nick <Nick_member@pathlink.com>
+// @date@	2005-01-28
+// @uri@	news:ctdtgj$30r$1@digitaldaemon.com
+// @url@	nntp://news.digitalmars.com/digitalmars.D.bugs/2784
+
+module dstress.run.bug_20050128_A;
+
+struct MyStruct{
+	int i;
+     
+	void display(){
+		assert(i==10);
+	}
+    
+	void someFunc(){
+		// We never call this function
+		void bug(MyStruct[] array){
+			array[0].i = i+1; // Comment out this line and the bug goes away
+		}
+    
+		assert(i==10);
+		display();
+		assert(i==10);
+	}
+}
+    
+int main(){
+	MyStruct m;
+	m.i = 10;
+	assert(m.i==10);
+	m.someFunc();
+	assert(m.i==10);
+	return 0;
+}   
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/bug_20050128_B.d	Sat Jan 29 09:28:45 2005 +0000
@@ -0,0 +1,38 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @date@	Nick <Nick_member@pathlink.com>
+// @date@	2005-01-28
+// @uri@	news:ctdtgj$30r$1@digitaldaemon.com
+// @url@	nntp://news.digitalmars.com/digitalmars.D.bugs/2784
+
+module dstress.run.bug_20050128_B;
+
+struct MyStruct{
+	int i;
+     
+	void display(){
+		assert(i==10);
+	}
+    
+	void someFunc(){
+		// We never call this function
+		void bug(MyStruct[] array){
+			// array[0].i = i+1; // Comment out this line and the bug goes away
+		}
+    
+		assert(i==10);
+		display();
+		assert(i==10);
+	}
+}
+    
+int main(){
+	MyStruct m;
+	m.i = 10;
+	assert(m.i==10);
+	m.someFunc();
+	assert(m.i==10);
+	return 0;
+}   
\ No newline at end of file