On Tue, 26 Oct 2010 12:35:21 -0400, osa <o...@aso.osa> wrote:
Every time I'm trying to use alias this (which looks like a nice
feature, on paper), I end up with problems. This is the most recent one
(dmd v2.049):
------
struct Foo {}
class Bar {
Foo foo_;
alias foo_ this;
}
void main() {
auto a = new Bar;
auto b = a;
a = null; // fails -- Error: cannot implicitly convert expression
(null) of type void* to Foo
}
------
There are plenty of 'alias this' issues in Bugzilla, but I cannot find
this particular problem there. So is this a bug or feature? The language
spec does not help do decide...
alias this seems to favor the aliased member over the container itself in
many cases. I'm not sure why. Alias this should be used as the last
resort IMO, because when you are aliasing this, you don't want the aliased
member forcefully taking control of your object.
I recently filed this bug report, which has a similar feel to your
problem: http://d.puremagic.com/issues/show_bug.cgi?id=4989
I think there may be others that are similar.
-Steve