On Monday, 9 March 2020 at 09:25:31 UTC, Calvin P wrote:
Is this a bugs ?

==============
struct A {
        ref auto opCall(string tmp) scope return {
                return this;
        }
}

struct B {
        A _a;

        @property ref auto a() scope return {
                return _a;
        }
}

extern(C) int main(){
        A a;
        a("a")("b");
        B b;
b.a("a")("b"); // Error: function test_opCall.B.a() is not callable using argument types (string)
        return 0;
}
==========


I has to use b.a()("a")("b") to avoid the compiler error. I think it should work to avoid the unnecessary ()

Should I submit a bugs ?

As written on https://dlang.org/spec/function.html#property-functions:

WARNING: The definition and usefulness of property functions is being reviewed, and the implementation is currently incomplete. Using property functions is not recommended until the definition is more certain and implementation more mature.

So no, I don't think it's necessary to file a bug - we're aware they're somewhat wonky, and until a resolution has been agreed on, I don't think filing bugs on what's undecided behavior is worth it.

--
  Simen

Reply via email to