changeset 1400:176afd3d6d8e

[Issue 1025] mixin("scope(exit) call();"); is broken Tomas Lindquist Olsen <tomas@famolsen.dk> 2007-03-05 http://d.puremagic.com/issues/show_bug.cgi?id=1025
author thomask
date Thu, 08 Mar 2007 16:25:57 +0000
parents 409d6e0aa69e
children b1d7b8a8c466
files reporter.txt run/m/mixin_27_A.d run/m/mixin_27_B.d run/m/mixin_27_C.d run/m/mixin_27_D.d run/m/mixin_27_E.d
diffstat 6 files changed, 141 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/reporter.txt	Thu Mar 08 16:25:31 2007 +0000
+++ b/reporter.txt	Thu Mar 08 16:25:57 2007 +0000
@@ -152,6 +152,7 @@
 Tim Fang		<timfang2006@126.com>
 Tim Keating
 Tintor Marko		<tm030127d@galeb.etf.bg.ac.yu>
+Tomas Lindquist Olsen	<tomas@famolsen.dk>
 Tomasz Stachowiak(aka Tom S / h3r3tic / heretic)	<h3r3tic@remove.mat.uni.torun.pl>
 Tyler Knott		<tknott@gmail.com>
 Tyro			<ridimz_at@yahoo.dot.com>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_27_A.d	Thu Mar 08 16:25:57 2007 +0000
@@ -0,0 +1,26 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Tomas Lindquist Olsen <tomas@famolsen.dk>
+// @date@	2007-03-05
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=1025
+// @desc@	[Issue 1025] mixin("scope(exit) call();"); is broken
+
+module dstress.run.m.mixin_27_A;
+
+int status;
+
+void test(){
+	mixin("status += 1;");
+	mixin("scope(exit) status *= 2;");
+	mixin("status += 5;");
+}
+
+int main(){
+	test();
+	if(12 != status){
+		assert(0);
+	}
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_27_B.d	Thu Mar 08 16:25:57 2007 +0000
@@ -0,0 +1,26 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Tomas Lindquist Olsen <tomas@famolsen.dk>
+// @date@	2007-03-05
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=1025
+// @desc@	[Issue 1025] mixin("scope(exit) call();"); is broken
+
+module dstress.run.m.mixin_27_B;
+
+int status;
+
+void test(){
+	mixin("status += 1;");
+	mixin("scope(success) status *= 2;");
+	mixin("status += 5;");
+}
+
+int main(){
+	test();
+	if(12 != status){
+		assert(0);
+	}
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_27_C.d	Thu Mar 08 16:25:57 2007 +0000
@@ -0,0 +1,26 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Tomas Lindquist Olsen <tomas@famolsen.dk>
+// @date@	2007-03-05
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=1025
+// @desc@	[Issue 1025] mixin("scope(exit) call();"); is broken
+
+module dstress.run.m.mixin_27_C;
+
+int status;
+
+void test(){
+	mixin("status += 1;");
+	mixin("scope(failure) status *= 2;");
+	mixin("status += 5;");
+}
+
+int main(){
+	test();
+	if(6 != status){
+		assert(0);
+	}
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_27_D.d	Thu Mar 08 16:25:57 2007 +0000
@@ -0,0 +1,31 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Tomas Lindquist Olsen <tomas@famolsen.dk>
+// @date@	2007-03-05
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=1025
+// @desc@	[Issue 1025] mixin("scope(exit) call();"); is broken
+
+module dstress.run.m.mixin_27_D;
+
+int status;
+
+void test(){
+	mixin("status += 1;");
+	mixin("scope(failure) status *= 2;");
+	throw new Exception("foo");
+	mixin("status += 5;");
+}
+
+int main(){
+	try{
+		test();
+	}catch{
+		if(2 != status){
+			assert(0);
+		}
+		return 0;
+	}
+	assert(0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_27_E.d	Thu Mar 08 16:25:57 2007 +0000
@@ -0,0 +1,31 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Tomas Lindquist Olsen <tomas@famolsen.dk>
+// @date@	2007-03-05
+// @uri@	http://d.puremagic.com/issues/show_bug.cgi?id=1025
+// @desc@	[Issue 1025] mixin("scope(exit) call();"); is broken
+
+module dstress.run.m.mixin_27_E;
+
+int status;
+
+void test(){
+	mixin("status += 1;");
+	mixin("scope(success) status *= 2;");
+	throw new Exception("foo");
+	mixin("status += 5;");
+}
+
+int main(){
+	try{
+		test();
+	}catch{
+		if(6 != status){
+			assert(0);
+		}
+		return 0;
+	}
+	assert(0);
+}