[Issue 9149] Disallow converting delegates to const
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Wed May 25 12:57:40 PDT 2016
https://issues.dlang.org/show_bug.cgi?id=9149
--- Comment #13 from timon.gehr at gmx.ch ---
(In reply to Steven Schveighoffer from comment #12)
> Yes I see.
>
> The issue is the conversion of the delegate type, when the context pointer
> is changed to const (but you didn't change the function pointer, so it still
> assumes it's argument is mutable).
>
> I agree with you.
>
> So basically, any struct or class instance cannot convert to const (or via
> pure constructor to immutable)
Do you have an example where conversion to immutable for a strongly pure
constructor leads to problems?
> if it contains a non-const delegate. Yuck,
> but I think we have to do that.
We can't (for class references, you never know whether some subclass might have
a mutable delegate field). We need to do something else, but all options I have
proposed so far are quite ugly (or become ugly when considering all the details
required to make them work), so I'm open to different proposals.
--
More information about the Digitalmars-d-bugs
mailing list