[swift-evolution] Idea: Extend "guard" to try-statements,	with a catch block
    Stephen Celis 
    stephen.celis at gmail.com
       
    Mon Feb 29 15:03:01 CST 2016
    
    
  
> On Feb 29, 2016, at 3:09 PM, Jacob Bandes-Storch via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Thoughts?
Thanks for writing this up! I think it's a natural step to take from the current model.
> Here are some discussion topics:
> 
> - If Swift's error-handling mechanisms evolved into a first-class Result type, would this proposal be moot?
Could you clarify what you mean by this?
> - Would this make sense as a feature of pattern-matching, rather than just "guard", so you could also do "if case let x = try foo() { ... } catch { ... }" ?
This makes sense to me at first glance, though it makes things rather complicated.
  - Can `catch` blocks appear before `else [if]` blocks? E.g.,
        if try test() != nil {
            ...
        } catch {
            ...
        } else if try test2() != nil {
            ...
        } else {
            ...
        } catch {
            ...
        }
  - Are `if`/`else` blocks generally promoted to `do`-like state when `catch` blocks exist?
        if something() {
            try failable()
        } catch {
            ...
        }
  - Does this extend to `switch` and how?
--
Stephen
    
    
More information about the swift-evolution
mailing list