DIP30, delegates more destruction for your pleasure
Timon Gehr
timon.gehr at gmx.ch
Thu Mar 14 10:01:28 PDT 2013
On 03/14/2013 04:41 PM, deadalnix wrote:
> ...
>
> DIP updated.
>
Using a vastly different set of allowed/disallowed cases. Every delegate
type must implicitly convert to unqualified. Otherwise attribute
inference may break code that would be valid without.
(this has to work differently with explicitly-typed contexts, because
those are not opaque.)
> The loss of information in cases like m=i causes problem when the copy
> or the destruction of the context isn't trivial.
>
> Cases like c=m must be enabled as they will happen anyway by
> transitivity (or we must prevent delegate call when the type qualifier
> is changed via transitivity which seem worse to me).
>
I favour neither, but your approach removes all guarantees on const.
(For the time being, my front end implements the parenthesized part.)
> inout const isn't a valid type qualifier so I dropped it.
I consider that a DMD bug.
More information about the Digitalmars-d
mailing list