Mercurial > projects > dstress
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); +}