Hi all,
Currently, a function that throws is assumed to throw anything. There was a
proposal draft last December to restrict that. The general idea was that you'd
write, for instance:
> enum Foo: ErrorProtocol {
> case bar
> case baz
> }
>
> func frob() throws Foo {
> throw Foo.bar // throw .bar?
> }
If you `catch Foo` (or every case of Foo), now that the compiler can verify
that your catch is exhaustive, you no longer have to have a catch-all block at
the end of the sequence.
This impacts the metadata format and has implications on resilience, which
leads me to believe that the discussion could qualify for the phase 1 of Swift
4. If this is the case, I'd be interested in pulling out the old discussions
and seeing where we left that at.
Félix
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution