[Issue 9281] Enum struct with op overloading doesnt works

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Jan 10 23:16:34 PST 2013


http://d.puremagic.com/issues/show_bug.cgi?id=9281


Kenji Hara <k.hara.pg at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID


--- Comment #4 from Kenji Hara <k.hara.pg at gmail.com> 2013-01-10 23:16:33 PST ---
(In reply to comment #3)
> I think this _was_ an accepts-invalid bug in 2.060.
> If you define Ob2.COLUMNS in 2.060, Ob2.COLUM_A is _incorrectly_ typed as
> immutable(Column). This is definitely a bug (But I don't know what change is
> fixed the bug in 2.060).

I found a commit which the behavior is changed.

https://github.com/D-Programming-Language/dmd/commit/e01eb59f842dfe7a5275d96c420691c4a64f57f4

The root cause of the bug 5779 was an optimizer bug. 
If the type of an optimized result is different from the type of a source
expression, the source expression type had been accidentally modified.

In this case, the declaration of COLUMNS invokes optimizer on the expression [
COLUM_A, ], and it accidentally modified the type of COLUM_A to
immutable(Column).

So the conclusion is: the original code had an accepts-invalid bug, and it was
already fixed in 2.061.

I'll mark this as "resolved-invalid" bug.

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


More information about the Digitalmars-d-bugs mailing list