Walter Bright Wrote: > Steven Schveighoffer wrote: > > type constructor. it has no meaning as a storage class since it's > > entirely transient (it only has any meaning inside functions). > > I meant does it only apply at the top level, or does it apply down > inside types?
It has to apply inside types unless we can prove it isn't needed. Consider a function that accepts inout(T) and returns inout(U). The extraction of U from const(T) is const(U) just like extraction of U from immutable(T) is immutable(U) because of transitivity rules. I don't think a proof exists. Consider class T { U u; } and other more deeply nested variations.