changeset 1460:d0ab95b04926

[Issue 815] scope(exit) isn't executed when "continue" is used to continue a while-loop Thomas K?hne <thomas-dloop@kuehne.cn> 2007-01-07 http://d.puremagic.com/issues/show_bug.cgi?id=815
author thomask
date Thu, 05 Apr 2007 10:28:19 +0000
parents 872b6f641b5d
children 030ce9dfefeb
files run/s/scope_18_A.d run/s/scope_18_B.d run/s/scope_18_C.d
diffstat 3 files changed, 99 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/s/scope_18_A.d	Thu Apr 05 10:28:19 2007 +0000
@@ -0,0 +1,33 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Thomas Kühne <thomas-dloop@kuehne.cn>
+// @date@	2007-01-07
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=815
+// @desc@	[Issue 815] scope(exit) isn't executed when "continue" is used to continue a while-loop
+
+module dstress.run.s.scope_18_A;
+
+int main(){
+	int[] log;
+	int i = 3;
+
+	while(i--){
+		scope(exit){
+			log ~= 0xEE;
+		}
+		log ~= i;
+		
+		if(i % 2){
+			continue;
+		}
+		log ~= 0xFF;
+	}
+
+	if([2, 0xFF, 0xEE, 1, 0xEE, 0, 0xFF, 0xEE] != log){
+		assert(0);
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/s/scope_18_B.d	Thu Apr 05 10:28:19 2007 +0000
@@ -0,0 +1,33 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Thomas Kühne <thomas-dloop@kuehne.cn>
+// @date@	2007-01-07
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=815
+// @desc@	[Issue 815] scope(exit) isn't executed when "continue" is used to continue a while-loop
+
+module dstress.run.s.scope_18_B;
+
+int main(){
+	int[] log;
+	int i = 3;
+
+	while(i--){
+		scope(success){
+			log ~= 0xEE;
+		}
+		log ~= i;
+		
+		if(i % 2){
+			continue;
+		}
+		log ~= 0xFF;
+	}
+
+	if([2, 0xFF, 0xEE, 1, 0xEE, 0, 0xFF, 0xEE] != log){
+		assert(0);
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/s/scope_18_C.d	Thu Apr 05 10:28:19 2007 +0000
@@ -0,0 +1,33 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Thomas Kühne <thomas-dloop@kuehne.cn>
+// @date@	2007-01-07
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=815
+// @desc@	[Issue 815] scope(exit) isn't executed when "continue" is used to continue a while-loop
+
+module dstress.run.s.scope_18_C;
+
+int main(){
+	int[] log;
+	int i = 3;
+
+	while(i--){
+		scope(failure){
+			log ~= 0xEE;
+		}
+		log ~= i;
+		
+		if(i % 2){
+			continue;
+		}
+		log ~= 0xFF;
+	}
+
+	if([2, 0xFF, 1, 0, 0xFF] != log){
+		assert(0);
+	}
+
+	return 0;
+}