=======
struct A {
alias This = typeof(this) ;
void opAssign(ref This ){
}
ref auto left(){
return This() ;
}
}
void main(){
A root ;
ref find() {
auto p = root ;
p = p.left;
}
}
===========
test.d(16): Error: function tree.A.opAssign (ref A _param_0) is
not callable using argument types (A)
Is this by design ?