changeset 1098:19734284b75a

[Issue 272] foreach inside anonymous function crashes dmd.exe Serg Kovrov <reg4dyh@inbox.lv> 2006-07-30 news:bug-272-3@http.d.puremagic.com/issues/
author thomask
date Mon, 14 Aug 2006 11:37:46 +0000
parents ba136e21b011
children 913919d47a5e
files run/f/foreach_36_A.d run/f/foreach_36_B.d run/f/foreach_36_C.d run/f/foreach_36_D.d
diffstat 4 files changed, 170 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/f/foreach_36_A.d	Mon Aug 14 11:37:46 2006 +0000
@@ -0,0 +1,43 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Serg Kovrov <reg4dyh@inbox.lv>
+// @date@	2006-07-30	
+// @uri@	news:bug-272-3@http.d.puremagic.com/issues/
+// @desc@	[Issue 272] foreach inside anonymous function crashes dmd.exe
+
+module destress.run.f.foreach_36_A;
+
+alias void function(char[][int]) FN;
+
+int status;
+
+int main(){
+	FN fn = function(char[][int] aarray){
+		int count;
+		
+		foreach (int key, char[] element; aarray){
+			if(key != 6){
+				assert(0);
+			}
+			if(element != "a"){
+				assert(0);
+			}
+			status++;
+		}
+	};
+
+	char[][int] aarray;
+	aarray[6] = "a";
+
+	status = 0;
+
+	fn(aarray);
+
+	if(status != 1){
+		assert(0);
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/f/foreach_36_B.d	Mon Aug 14 11:37:46 2006 +0000
@@ -0,0 +1,43 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Serg Kovrov <reg4dyh@inbox.lv>
+// @date@	2006-07-30	
+// @uri@	news:bug-272-3@http.d.puremagic.com/issues/
+// @desc@	[Issue 272] foreach inside anonymous function crashes dmd.exe
+
+module destress.run.f.foreach_36_B;
+
+alias void delegate(char[][int]) FN;
+
+int main(){
+	int status;
+
+	FN fn = delegate(char[][int] aarray){
+		int count;
+		
+		foreach (int key, char[] element; aarray){
+			if(key != 6){
+				assert(0);
+			}
+			if(element != "a"){
+				assert(0);
+			}
+			status++;
+		}
+	};
+
+	char[][int] aarray;
+	aarray[6] = "a";
+
+	status = 0;
+
+	fn(aarray);
+
+	if(status != 1){
+		assert(0);
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/f/foreach_36_C.d	Mon Aug 14 11:37:46 2006 +0000
@@ -0,0 +1,42 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Serg Kovrov <reg4dyh@inbox.lv>
+// @date@	2006-07-30	
+// @uri@	news:bug-272-3@http.d.puremagic.com/issues/
+// @desc@	[Issue 272] foreach inside anonymous function crashes dmd.exe
+
+module destress.run.f.foreach_36_C;
+
+alias void delegate(char[]) FN;
+
+int main(){
+	int status;
+
+	FN fn = delegate(char[] array){
+		int count;
+		
+		foreach (size_t index, char element; array){
+			if(index != 0){
+				assert(0);
+			}
+			if(element != 'a'){
+				assert(0);
+			}
+			status++;
+		}
+	};
+
+	char[] array = "a";
+	status = 0;
+
+	fn(array);
+
+	if(status != 1){
+		assert(0);
+	}
+
+	return 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/f/foreach_36_D.d	Mon Aug 14 11:37:46 2006 +0000
@@ -0,0 +1,42 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Serg Kovrov <reg4dyh@inbox.lv>
+// @date@	2006-07-30	
+// @uri@	news:bug-272-3@http.d.puremagic.com/issues/
+// @desc@	[Issue 272] foreach inside anonymous function crashes dmd.exe
+
+module destress.run.f.foreach_36_D;
+
+alias void function(char[]) FN;
+
+int status;
+
+int main(){
+	FN fn = function(char[] array){
+		int count;
+		
+		foreach (size_t index, char element; array){
+			if(index != 0){
+				assert(0);
+			}
+			if(element != 'a'){
+				assert(0);
+			}
+			status++;
+		}
+	};
+
+	char[] array = "a";
+	status = 0;
+
+	fn(array);
+
+	if(status != 1){
+		assert(0);
+	}
+
+	return 0;
+}
+