Mercurial > projects > dstress
changeset 1574:40a86c79a1c4
[Issue 1264] New: anon class in anon delegate in private member == ICE
<default_357-line@yahoo.de>
2007-06-13
http://d.puremagic.com/issues/show_bug.cgi?id=1264
author | thomask |
---|---|
date | Thu, 21 Feb 2008 15:19:32 +0000 |
parents | 81b51faeeefe |
children | 3d75bc76b7ae |
files | run/i/interface_27_A.d run/i/interface_27_B.d run/i/interface_27_C.d run/i/interface_27_D.d |
diffstat | 4 files changed, 148 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/i/interface_27_A.d Thu Feb 21 15:19:32 2008 +0000 @@ -0,0 +1,37 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ <default_357-line@yahoo.de> +// @date@ 2007-06-13 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1264 +// @desc@ [Issue 1264] New: anon class in anon delegate in private member == ICE + +module dstress.run.i.interface_27_A; + +interface I{ + int foo(); +} + +int main() { + int check = 0x1234ABCD; + + I o = null; + + (){ + o = new class I{ + int foo() { + return 1 + check; + } + }; + }(); + + if(0x1234ABCE != o.foo()){ + assert(0); + } + if(0x1234ABCD != check){ + assert(0); + } + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/i/interface_27_B.d Thu Feb 21 15:19:32 2008 +0000 @@ -0,0 +1,37 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ <default_357-line@yahoo.de> +// @date@ 2007-06-13 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1264 +// @desc@ [Issue 1264] New: anon class in anon delegate in private member == ICE + +module dstress.run.i.interface_27_B; + +abstract class X{ + int foo(); +} + +int main() { + int check = 0x1234ABCD; + + X o = null; + + (){ + o = new class X{ + int foo() { + return 1 + check; + } + }; + }(); + + if(0x1234ABCE != o.foo()){ + assert(0); + } + if(0x1234ABCD != check){ + assert(0); + } + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/i/interface_27_C.d Thu Feb 21 15:19:32 2008 +0000 @@ -0,0 +1,37 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ <default_357-line@yahoo.de> +// @date@ 2007-06-13 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1264 +// @desc@ [Issue 1264] New: anon class in anon delegate in private member == ICE + +module dstress.run.i.interface_27_C; + +class X{ + abstract int foo(); +} + +int main() { + int check = 0x1234ABCD; + + X o = null; + + (){ + o = new class X{ + int foo() { + return 1 + check; + } + }; + }(); + + if(0x1234ABCE != o.foo()){ + assert(0); + } + if(0x1234ABCD != check){ + assert(0); + } + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/i/interface_27_D.d Thu Feb 21 15:19:32 2008 +0000 @@ -0,0 +1,37 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ <default_357-line@yahoo.de> +// @date@ 2007-06-13 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1264 +// @desc@ [Issue 1264] New: anon class in anon delegate in private member == ICE + +module dstress.run.i.interface_27_D; + +class X{ + int foo(); +} + +int main() { + int check = 0x1234ABCD; + + X o = null; + + (){ + o = new class X{ + int foo() { + return 1 + check; + } + }; + }(); + + if(0x1234ABCE != o.foo()){ + assert(0); + } + if(0x1234ABCD != check){ + assert(0); + } + + return 0; +}