On Jul 5, 2016, at 10:53 AM, Dave Abrahams via swift-evolution <[email protected]> wrote: > When T is a class type, it can easily violate *all* of these > expectations. In other words, classes naturally bypass the mutation > model. > > If we are going to maintain source stability after Swift 3, it seems > that we either need to address this now, or decide that it won't be > addressed, because of the “viral const” problem. > > One idea that Jordan and I have floated is that protocols with mutating > methods should be constrained to applying to non-class types. That > would be a step in the right direction, but, that still leaves cases > like gg able to easily violate expectations when the protocol in > question has no mutating methods. > > Another possibility would be to formalize the idea of value semantics in > protocol declarations, so that non-class protocols were only allowed to > apply to values. > > It's also possible that I've overestimated the seriousness of the issue > and we actually can afford to postpone thinking about it until after > Swift 4.
There is no chance that we will have time to re-evaluate this for Swift 3. -Chris _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
