[Issue 215] New: static initialization problem - invalid code, bogus error message

Thomas Kuehne thomas-dloop at kuehne.cn
Fri Jul 7 10:06:39 PDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

d-bugmail at puremagic.com schrieb am 2006-06-21:
> http://d.puremagic.com/issues/show_bug.cgi?id=215

> The folowing code:
>
> // tmp11.d:
> template Foo() {
>         template nothing(int i = 0) {
>         }
>
>         int foo = 1;
> }
>
>
> struct Bar {
>         mixin Foo f;
> }
> // ----
>
> Causes DMD to output the following error:
> tmp11.d(9): struct tmp11.Bar overlapping initialization for struct Bar.foo

Added to DStress as
http://dstress.kuehne.cn/run/t/template_38_A.d
http://dstress.kuehne.cn/run/t/template_38_B.d
http://dstress.kuehne.cn/run/t/template_38_C.d
http://dstress.kuehne.cn/run/t/template_38_D.d

> Yet this is still nothing compared to:
>
> // ----
> template Foo() {
>         template nothing(int i = 0) {
>         }
>
>         struct Blah {
>                 int foo = 1;
>         }
>
>         Blah blah;
> }
>
>
> struct Bar {
>         mixin Foo f;
> }
>
>
> void main()
> {
>         Bar y;
>         printf("%d\n", y.f.blah.foo);
>         assert (y.f.blah.foo == 1);
> }
> // ----
>
> Which compiles, and when ran, prints '0' and reports a failed assertion error
>:(

Added to DStress as
http://dstress.kuehne.cn/run/t/template_39_A.d
http://dstress.kuehne.cn/run/t/template_39_B.d
http://dstress.kuehne.cn/run/t/template_39_C.d
http://dstress.kuehne.cn/run/t/template_39_D.d
http://dstress.kuehne.cn/run/t/template_39_E.d

Thomas


-----BEGIN PGP SIGNATURE-----

iD8DBQFErk9CLK5blCcjpWoRAq14AKCNCVe7JyujSum1Vf0/I9nAEfsWQACfdzwe
0FsCLozB3iX4hnpNAV8dFd8=
=/SFJ
-----END PGP SIGNATURE-----



More information about the Digitalmars-d-bugs mailing list