December 11, 2018
https://issues.dlang.org/show_bug.cgi?id=19477

          Issue ID: 19477
           Summary: Circular alias this makes constructor not work with
                    UFCS only
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: dkorpel@live.nl

I created two types that can convert to eachother:
```
struct Q16 {
    Q32 toQ32() {return Q32.init;}
    alias toQ32 this;
}

struct Q32 {
    this(Q16 a) {}
    Q16 toQ16() {return Q16.init;}
    alias toQ16 this;
}

void main() {
    auto x = Q32(Q16.init);
    auto y = Q16.init.Q32;
}
```

The assignment of x compiles, but for y you get "Error: cannot resolve identifier Q32". Removing either of the "alias this" makes it work.

--