On Monday, 30 May 2016 at 21:32:46 UTC, Alex Parrill wrote:
On Monday, 30 May 2016 at 10:09:19 UTC, chmike wrote:
Why can't info() return a Rebindable!(immutable(InfoImpl)) ?
What do you mean? `info` returns an `immutable(InfoImpl)`, not
a `Rebindable!(immutable(InfoImpl))`. Rebindable doesn't apply
itself to the return types of the methods of the return types
(there's no reason to).
I mean that if I change the return type of info() into
Rebindable!(immutable(infoImpl)) like this
Rebindable!(immutable(InfoImpl)) info() { ... return
rebindable(x);}
I get an error. I was explained privately that its because
Rebindable... Is an lvalue and not a type.
My conclusion is that rebindable is not a satisfying solution to
have mutable references to immutable objects.
I don't understand the rationale of these immutable references.
It is too constraining.