> On 7 Mar 2017, at 21:41, Erica Sadun via swift-evolution 
> <[email protected]> wrote:
> 
>> On Mar 7, 2017, at 1:31 PM, Jonathan Hull <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Would ‘if let foo = foo’ still be allowed?
>> 
>> 
> 
> Existing code should to continue to work with `if let foo = foo`. I don't
> believe I put anything in-text about removing this, but if you see something
> let me know.

But there’s nothing in-text that states clearly that you are not removing the 
old syntax. I think it would be worth clarifying.

> -- E
> 
> 
>>> On Mar 7, 2017, at 12:14 PM, Erica Sadun via swift-evolution 
>>> <[email protected] <mailto:[email protected]>> wrote:
>>> 
>>> I have been involved in several separate related draft proposals for 
>>> discussions 
>>> that were cut off about 4 months ago. I believe they meet the criteria for 
>>> Stage 2,
>>> but I'm doing a poor job presenting them coherently on-list.
>>> 
>>> Because of that, I'm going to start over here, hopefully pulling in all the 
>>> details
>>> and allowing the community to provide feedback and direction. The following 
>>> gist is an amalgam of work I was discussing with Xiaodi Wu, Chris Lattner, 
>>> and
>>> David Goodine.
>>> 
>>> https://gist.github.com/erica/aea6a1c55e9e92f843f92e2b16879b0f 
>>> <https://gist.github.com/erica/aea6a1c55e9e92f843f92e2b16879b0f>
>>> 
>>> I've decided to link to the gist rather than paste the entire proposal as 
>>> that never seems to 
>>> really work here.
>>> 
>>> 
>>> In a nutshell:
>>> 
>>> Unwrapping values is one of the most common Swift tasks and it is 
>>> unnecessarily complex. 
>>> 
>>> Consider the following solutions:
>>> 
>>> Introduce an unwrap keyword for Optional values
>>> Introduce an Unwrappable protocol for associated-value enumerations.
>>> Apply unwrap to non-Optional values.
>>> Extend for and switch.
>>> Fix pattern match binding issues.
>>> Simplify complex binding.
>>>  
>>> <https://gist.github.com/erica/aea6a1c55e9e92f843f92e2b16879b0f#motivation>Motivation
>>> 
>>> Unwrapping with conditional binding and pattern matching is unnecessarily 
>>> complex and dangerous:
>>> 
>>> Using "foo = foo" fails DRY principles 
>>> <https://en.wikipedia.org/wiki/Don%27t_repeat_yourself>. 
>>> Using case let .some(foo) = foo or case .some(let foo) = foo fails KISS 
>>> principles <https://en.wikipedia.org/wiki/KISS_principle>.
>>> Using the = operator fails the Principle of Least Astonishment 
>>> <https://en.wikipedia.org/wiki/Principle_of_least_astonishment>.
>>> Allowing user-provided names may shadow existing variables without compiler 
>>> warnings.
>>> The complexity and freedom of let and var placement can introduce bugs in 
>>> edge cases.
>>> -- E
>>> _______________________________________________
>>> swift-evolution mailing list
>>> [email protected] <mailto:[email protected]>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> 
> 
> _______________________________________________
> 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

Reply via email to