Fighting with alias this: bugs or features?

osa osa at aso.osa
Tue Oct 26 13:35:32 PDT 2010


On 10/26/2010 03:22 PM, "Jérôme M. Berger" wrote:
> 	I'm not sure that the problem is on the line where the error is
> reported. My guess would be that the issue is with the "auto a = new
> Bar" line: I would bet that this gets interpreted as "Foo a = new
> Bar" instead of what we expect ("Bar a = new Bar"). If I'm right,
> then the "a = null" line is indeed an error: since Foo is a struct
> and structs are value types, you cannot affect "null" to a variable
> of type Foo...

No, that's not the case. Here is an updated test case, without any auto's:
-----
struct Foo {}
class Bar {
     Foo foo_;
     alias foo_ this;
}
void main() {
     Bar a;
     a = null;
}
------
aliasthis1.d(8): Error: cannot implicitly convert expression (null) of 
type void* to Foo

So it seems to be a real problem. I've reported it in Bugzilla:
http://d.puremagic.com/issues/show_bug.cgi?id=5123


More information about the Digitalmars-d mailing list