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