[Issue 14806] [REG2.063] alias this doesn't force elaborate equality, but is followed during it

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Sat Jul 18 20:48:36 PDT 2015


https://issues.dlang.org/show_bug.cgi?id=14806

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull
           Hardware|x86_64                      |All
            Summary|alias this doesn't force    |[REG2.063] alias this
                   |elaborate equality, but is  |doesn't force elaborate
                   |followed during it          |equality, but is followed
                   |                            |during it
                 OS|Linux                       |All

--- Comment #1 from Kenji Hara <k.hara.pg at gmail.com> ---
(In reply to ag0aep6g from comment #0)
> Either both asserts should pass, or they should both fail.

Both asserts should fail, because they should be translated as follows:

    Foo!int a, b;
    assert(a == b);
    // ==> a.tupleof == b.tupleof
    // ==> a.bar == b.bar && a.baz.get() == b.baz.get()

    Foo14806!string c, d;
    assert(c == d);
    // ==> c.tupleof == d.tupleof
    // ==> c.bar == d.bar && c.baz.get() == d.baz.get()

Compiler fix (targetting 2.068 release):
https://github.com/D-Programming-Language/dmd/pull/4820

--


More information about the Digitalmars-d-bugs mailing list