[swift-evolution] [Idea] Add forced conversion for Error catching pattern matching

Pedro Vieira pedrovieira.swift at gmail.com
Sun Mar 20 15:42:42 CDT 2016


>
> Also as a brief aside, it’s not super intuitive to me that the syntax for
> the catch pattern matching wildcard is
>
> catch _
>
> whereas it is
>
> default
>
> for switches. I think I saw Chris mention somewhere that default was
> chosen because of it’s wide familiarity. Does anyone recall the reason?
>
>
I think it was about a proposal for using case _: instead of default:

2016-03-20 20:26 GMT+00:00 Tyler Fleming Cloutier via swift-evolution <
swift-evolution at swift.org>:

> I recall that there was quite a bit of discussion a while back about
> adding typed error declarations for methods that throw for the purpose of
> exhaustive pattern matching on errors.
>
> There were interesting arguments on either side, and I think that the
> result was to maintain the status quo. There’s still the issue of having to
> add the extra catch statement to every do block for exhaustive matches.
>
> Would it be wise to allow force conversion for the cases in which the
> developer believes the match is exhaustive? ie
>
> do {
>     let action = chooseAction(game)
>     game = try game.applyAction(action)
> } catch let e as ActionError {
>     game.failedAction = e
> } catch _ {
>     fatalError(“This is an unfortunate bit of noise :/")
> }
>
> becomes
>
> do {
>     let action = chooseAction(game)
>     game = try game.applyAction(action)
> } catch let e as! ActionError {
>     game.failedAction = e
> }
>
>
> Also as a brief aside, it’s not super intuitive to me that the syntax for
> the catch pattern matching wildcard is
>
> catch _
>
> whereas it is
>
> default
>
> for switches. I think I saw Chris mention somewhere that default was
> chosen because of it’s wide familiarity. Does anyone recall the reason?
>
> Thanks,
>
> Tyler
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>


-- 
Pedro Vieira
http://pedrovieira.me
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160320/60cd4c51/attachment.html>


More information about the swift-evolution mailing list