Summary: Alias this properties don't overload with non-alias this
           Product: D
           Version: 2.029
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD

struct ArrayWrapper {
    uint[] arr;

    alias arr this;

    void length(uint l) {};

void main() {
    ArrayWrapper aw;
    auto len = aw.length;

C:\home\dsimcha\bin\test.d(10): Error: function test.ArrayWrapper.length (uint
l) does not match parameter types ()
C:\home\dsimcha\bin\test.d(10): Error: expected 1 function arguments, not 0
C:\home\dsimcha\bin\test.d(10): Error: variable test.main.len voids have no
C:\home\dsimcha\bin\test.d(10): Error: expression aw.length() is void and has
no value

If I comment out the length property in the ArrayWrapper struct, length gets
forwarded properly to arr and the code compiles.


Reply via email to