On Tue, May 31, 2016 at 3:08 PM, Brandon Knope <[email protected]> wrote:
> What is wrong with: > > if let y = y && x < z > > They are, after all, independent from each other. > That won't compile. 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
