https://issues.dlang.org/show_bug.cgi?id=19117
--- Comment #1 from RazvanN <razvan.nitu1...@gmail.com> --- (In reply to RazvanN from comment #0) > struct A > { > immutable(A) fun() { return immutable A(); } > ref A fun2(ref A a) { return this; } > > > alias fun this; // line 6 > } > > void main() > { > A a, b; > b.fun2(a); > } > > aliasthisbug.d(12): Error: function aliasthisbug.A.fun2(ref A a) is not > callable using argument types (A) > aliasthisbug.d(12): cannot pass argument a of type A to parameter ref > A a > > Comment line 6 an the error disappears. Also, changing the signature of fun2 to : ref A fun2(A a) makes the example compile --