Commits

Kevin Ballard committed 88a45b6bd00
[Sema][SR-681] Allow catch blocks to rethrow errors when safe A catch block can only be entered if the do block threw an error. In a rethrows function, if the do block throws an error only under rethrows conditions, then the catch block can only be entered under rethrows conditions, which means the catch block can unconditionally throw and it's still safe. This enables code that looks like ```swift func foo(f: () throws -> Void) rethrows { do { try f() } catch is SomeError { throw OtherError() } } ```