[Issue 8902] Unexpected "duplicate union initialization for X" error

2013-03-05 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8902


Walter Bright  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8902] Unexpected "duplicate union initialization for X" error

2013-03-05 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8902



--- Comment #5 from github-bugzi...@puremagic.com 2013-03-05 08:23:20 PST ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/840d88a6e539e9817cffdc4abe8ad6357897d54a
fix Issue 8902 - Unexpected "duplicate union initialization for X" error

https://github.com/D-Programming-Language/dmd/commit/a975ed6aacd7e2604808a74fb509da99c10624ef
Merge pull request #1369 from 9rnsr/fix8902

Issue 8902 - Unexpected "duplicate union initialization for X" error

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8902] Unexpected "duplicate union initialization for X" error

2012-12-13 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8902



--- Comment #4 from github-bugzi...@puremagic.com 2012-12-13 04:57:44 PST ---
Commits pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/1c54f33603b00163c4736696f2e24587e024327d
fixup for Issue 8902

After default initialization, only the first one in overlapped fields is
readable in CTFE.

https://github.com/D-Programming-Language/phobos/commit/437f15689dae803510321185f3545479dee7c473
Merge pull request #1007 from 9rnsr/fix8902

fixup for Issue 8902

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8902] Unexpected "duplicate union initialization for X" error

2012-12-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8902



--- Comment #3 from github-bugzi...@puremagic.com 2012-12-12 07:41:20 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/44310012fea6751561a852cc5ef4056a0ba9d272
Add note about Issue 8902 workaround

* Issue 8902 URL: http://d.puremagic.com/issues/show_bug.cgi?id=8902

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8902] Unexpected "duplicate union initialization for X" error

2012-10-28 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8902



--- Comment #2 from Denis Shelomovskij  2012-10-28 
12:12:11 MSK ---
(In reply to comment #1)
> (In reply to comment #0)
> It would further more appear that the compiler has trouble detecting this in
> conditional implementations, which makes it difficult to bypass this problem.

Possible this is related to an error gagging problem. E.g. consider this:
---
union U { int a, b; }

template t(T)
{ static T t = T.init; } // Error: duplicate union initialization for b

static if (__traits(compiles, t!U)) { }
---

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8902] Unexpected "duplicate union initialization for X" error

2012-10-28 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8902


monarchdo...@gmail.com changed:

   What|Removed |Added

 CC||monarchdo...@gmail.com
   Severity|normal  |major


--- Comment #1 from monarchdo...@gmail.com 2012-10-28 01:06:44 PDT ---
(In reply to comment #0)
> Should assigning `.init` to a union be allowed or disallowed? At leas current
> behavior is inconsistent:
> 
> ---
> union U { int a, b; }
> 
> enum U u0 = U.init;  // No errors
> U u1;// No errors
> U u2 = U.init;  // Error: duplicate union initialization for b
> 
> void main()
> {
> U u3 = U.init;// No errors
> immutable U u4 = U.init;  // No errors
> immutable static U u5 = U.init;  // Error: duplicate union...
> static U u6 = u4;  // Error: duplicate union...
> static U u7 = U.init;  // Error: duplicate union...
> }
> ---

It would further more appear that the compiler has trouble detecting this in
conditional implementations, which makes it difficult to bypass this problem.

//
import std.stdio;

union U { int a, b; }

void main()
{
static if (is(typeof((inout int _dummy=0){static U i = U.init;}))) //FINE
{
static U i = U.init; //L9: DERP
}
}
//
main.d(9): Error: duplicate union initialization for b
//

Raising priority due to the impossibility to easily bypass this problem...

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---