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