On Saturday, 18 July 2015 at 02:23:26 UTC, rcorre wrote:
Is there any reason why implicit conversion from Foo to Thing
is permitted in a regular method but not in a constructor?
Trying to figure out whether this is a bug or some sort of
constructor-specific safety precaution.
struct Thing {
Foo foo;
alias foo this;
}
class Foo { }
class Bar {
Thing thing;
void fine() {
thing = new Foo(); // ok
}
this() {
thing = new Foo(); // nope!
}
}
I even am not sure how in the world it allows implicit conversion
from class to struct in "fine" at all.