> On Mar 7, 2017, at 3:44 PM, Guillaume Lessard via swift-evolution 
> <[email protected]> wrote:
> 
> I like some of this, but as a single proposal, it does too many things at 
> once.

I deliberately moved it out of proposal format for that reason, so it could be 
discussed first.

> - The `case let .some(foo)` vs. `case .some(let foo)` issue could be a 
> targeted proposal.
> (I really like this)

I put it in as a bug report (link in repo) based on ?Anton's? suggestion but 
Jordan says this 
isn't similar to normal warnings they emit.

> - The Unwrappable protocol (and keyword) is interesting; it can probably be 
> its own discussion.
> (feels unnecessary, without feeling wrong)

Unwrappable is driven from Chris L to simplify language implementation and 
support
the eventual introduction of Result/Either. If that's not needed anymore, I'm 
sure 
he or others will let me know and I'll cross out. I love the idea of an easy way
to use existing syntax sugar for custom types.

> - I’m not clear about the proposed solution about shadowing. Is it’s simply 
> the `let` restriction or is there more to it? In any case I don’t think the 
> compiler should disallow shadowing, even if there is a new warning; if there 
> is a new warning there must be a way to spell a shadowed name so as to 
> silence the warning.

Several points touch on shadowing:

* creating something more readable and safe with `unwrap`
* removing a danger that cannot be addressed with `unwrap` for multi-associated 
values

> - The whole pattern-binding in if/guard/for statements is certainly ripe for 
> improvement; I agree with Anton Zhilin’s comment that 
> pattern-before-expression is confusing. The switch statement puts the 
> expression before the patterns, and it reads well. More than once, after 
> having written an `if case` statement, I later changed it to a `switch` 
> statement in order to improve readability.

I have no problem switching them and doing =~ vs ~= but I remember this point 
being
brought up and there was a clear design decision to do pattern first value 
second. I'll 
defer that to anyone who knows the background.

-- E

> 
> Cheers,
> Guillaume Lessard
> 

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to