Bug? aliasing member of instance

Timon Gehr timon.gehr at gmx.ch
Sat Oct 22 04:32:00 PDT 2011


On 10/22/2011 09:28 AM, Nick Sabalausky wrote:
> Is this a compiler bug?
>
> --------------------------------
> struct Foo
> {
>      int a;
> }
>
> Foo foo;
> alias foo.a b;
>
> void main()
> {
>      b = 5;  //<-- Error
> }
> --------------------------------
>
>> dmd test.d
> test.d(11): Error: need 'this' to access member a
>
> I did this on DMD 2.055
>
>
alias has never worked for instance members, even if they are accessible 
at compile time. The workaround for your example could be this:

ref @property b(){return foo.a;} // instead of alias foo.a b;

Another case where we currently have this meaningless error message:

struct Foo{
     int a;
     int foo(int res=a){return res;}
}

void main(){
     Foo x;
     x.foo();
}

I think that should work.




More information about the Digitalmars-d-learn mailing list