[Issue 13563] New: ICE with opIndexAssign op-overloading and ModuleScopeOperator

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Wed Oct 1 05:47:03 PDT 2014


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

          Issue ID: 13563
           Summary: ICE with opIndexAssign op-overloading and
                    ModuleScopeOperator
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Keywords: ice
          Severity: major
          Priority: P1
         Component: DMD
          Assignee: nobody at puremagic.com
          Reporter: k.hara.pg at gmail.com

Separating issue from https://issues.dlang.org/show_bug.cgi?id=13356#c1

void writeConfig()
{
    JSONValue v;
    v["name"] = .z();
}

struct JSONValue
{
    import std.variant;
    alias Payload = Algebraic!(typeof(null));

    Payload payload;

    alias payload this;
}


Simplified test case:

struct Payload
{
    void opIndex(K)(K i) {}
    void opIndexAssign(T, N)(T value, N i) {}
}

struct Value
{
    Payload payload;
    alias payload this;
}

void main()
{
    Value v;
    v["name"] = .z();
}

--


More information about the Digitalmars-d-bugs mailing list