Issue with dmd 2.066, alias this, and sort
bearophile via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Aug 27 14:43:34 PDT 2014
rcor:
> I've tried to express my problem in a mostly minimal example
> here:
> https://gist.github.com/murphyslaw480/d4a5f857a104bcf62de1
>
> The class Point has an alias this to its own property
> 'feature()', which returns a reference to a private member.
> When I try to sort a Point[], DMD fails with "mutable method
> feature is not callable on const object". I'm not actually
> using the property 'feature()' or the alias this in the
> sorting, so it seems like it shouldn't interfere. That being
> said, I'm still slightly const-challenged so maybe its an error
> on my part. However, the above example compiles fine with DMD
> 2.065.0-3.
It compiles if you use:
@property auto feature() const pure nothrow { return _feature; }
Otherwise I get strange errors like:
...\dmd2\src\phobos\std\exception.d(986,31): Error: pure function
'std.exception.doesPointTo!(Point, Point, void).doesPointTo'
cannot call impure function 'temp.Point.feature'
Bye,
bearophile
More information about the Digitalmars-d-learn
mailing list