What is wrong with: if let y = y && x < z
They are, after all, independent from each other. Brandon > On May 31, 2016, at 3:59 PM, Xiaodi Wu via swift-evolution > <[email protected]> wrote: > >> On Tue, May 31, 2016 at 2:51 PM, Christopher Kornher via swift-evolution >> <[email protected]> wrote: > >> >>> On May 31, 2016, at 1:47 PM, Xiaodi Wu <[email protected]> wrote: >>> >>> >>> >>> On Tue, May 31, 2016 at 2:45 PM, Christopher Kornher via swift-evolution >>> <[email protected]> wrote: >>>>>> >>>>>> Not allowed: >>>>>> … >>>>>> let a = a >>>>>> let b = b where b > 10 && a > 5 >>>>> >>>>> Why would this not be allowed by your rule? You're making use of `b` in >>>>> your where clause. As I demonstrated above, essentially any assertion can >>>>> be rewritten to work around your rule. In general: >>>> >>>> It is not allowed because ‘a’ is defined in the line above. It must be >>>> defined in the ‘if let’ associated with the where in which it is mentioned. >>> >>> That's a much more restrictive where clause than you proposed earlier. >>> You'd not be able to write: >>> >>> ``` >>> let b = b where b > anyOtherVariable >>> ``` >> >> >> The definition is not a formal one, but that was the intent. >> >> ``` >> let b = b where b > anyOtherVariable >> ``` >> is legal as long as `anyOtherVariable` is not defined within the entire >> condition clause > > > You can propose that rule, but it doesn't solve the issue. If, today, I've got > > ``` > let x = 1 > let y: Int? = 2 > let z = 3 > > if let y = y where x < z { > // do stuff > } > ``` > > your rule simply forces > > ``` > if let y = y where y == y && x < z { > // do stuff > } > ``` > > The point is, the semantic relationship between what comes before and after > `where` exists in the mind of the human reader only. > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
