[Issue 20917] stacking alias this, drops data during assignment

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Jun 9 22:53:03 UTC 2020


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

Stanislav Blinov <stanislav.blinov at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |stanislav.blinov at gmail.com
         Resolution|---                         |INVALID

--- Comment #1 from Stanislav Blinov <stanislav.blinov at gmail.com> ---
    void opAssign(T a) {
        data = a;
        // hate = outer; Needs implicit conversion.
        // outer converts to inner.
        // hate = inner; Needs implicit conversion.
        // No implicit conversion found. Lookup through hate's alias this.
        // getAliasThis(hate) -> outer.
        // outer = inner; Needs implicit conversion.
        // No implicit conversion found. Lookup through outer's alias this.
        // getAliasThis(outer) -> inner.
        // inner = inner;
        assert(data == a); // makes incorrect assumption
    }

You need to define opAssign(T) for hate.

--


More information about the Digitalmars-d-bugs mailing list