[Issue 21475] New: template 'this' parameter is incorrectly handled for 'alias this'

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Dec 12 10:37:48 UTC 2020


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

          Issue ID: 21475
           Summary: template 'this' parameter is incorrectly handled for
                    'alias this'
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: maxsamukha at gmail.com

struct S {
    string rt;
    void _init(this T)() {
        rt =  T);
    }
}

struct S2 {
    S s;
    alias s this;
}

void main() {
    S2 s2;
    s2._init;
    assert(s2.rt == "S2");
}

T is incorrectly resolved to S, while it should be typeof(s2), which is S2.

--


More information about the Digitalmars-d-bugs mailing list