It is an unavoidable characteristic of parameters that they both describe the signature of the function and declare a local variable within it. This feature therefore can be used to both change the signature of the function and change the semantics of a local variable. Ignoring the second case is not decreasing the scope of the feature; it's just forcing people who want to achieve it to use a feature that's intended for a slightly different purpose and therefore has consequences they don't want. Ignoring the first case is a non-starter, because while the second case is probably useful in more situations, the first case is still important, and indeed the main reason why Apple engineers are working on this right now is to solve a first-case problem (with @Binding
, which we've been fairly upfront about).
5 Likes