# HG changeset patch # User thomask # Date 1203607172 0 # Node ID 40a86c79a1c40ae70e6d4446dcdfae44d59d7faf # Parent 81b51faeeefe3107ccfc70384abe57a129b246b5 [Issue 1264] New: anon class in anon delegate in private member == ICE 2007-06-13 http://d.puremagic.com/issues/show_bug.cgi?id=1264 diff -r 81b51faeeefe -r 40a86c79a1c4 run/i/interface_27_A.d --- /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@ +// @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; +} diff -r 81b51faeeefe -r 40a86c79a1c4 run/i/interface_27_B.d --- /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@ +// @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; +} diff -r 81b51faeeefe -r 40a86c79a1c4 run/i/interface_27_C.d --- /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@ +// @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; +} diff -r 81b51faeeefe -r 40a86c79a1c4 run/i/interface_27_D.d --- /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@ +// @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; +}