On Tue, 29 Dec 2009 09:01:38 -0500, teo <teo.ubuntu.rem...@yahoo.com> wrote:

Consider following:

class A
{
  int m;
  void opAddAssign(int n) { m += n; }
}

class B
{
  A a;
  this() { a = new A; }
  A Prop() { return a; }
}

void main()
{
  B b = new B;
  b.Prop += 3;
}

I get a compilation error (dmd v2.037):

test.d(17): Error: 'b.Prop' is not a scalar, it is a A()
test.d(17): Error: incompatible types for ((b.Prop) += (3)): 'A()' and
'int'

Am I doing something wrong, or is this a known issue with opAddAssign and/
or properties?

This is part of the issue with properties that will be fixed with the @property annotation.

try

b.Prop() += 3;

-Steve

Reply via email to