Commits

Chris Lattner committed 4b4f909d1a4
Several tangled up changes: - Enable 'catch is NSError' and 'catch let e as NSError {' patterns to a) work, and b) be considered to be exhaustive catches. This enables people to catch an error and *use* it as an NSError directly, instead of having to do boiler-platey cases. This is particularly important for the migrator. - Do not warn about non-noop coersion casts (like "_ as NSError" when matching an ErrorType), since they provide useful type adjustment to the subpattern. Still warn on noop ones. - Simplify CatchStmt::isSyntacticallyExhaustive to use Pattern::isRefutablePattern. Add a FIXME, because the parser is guiding closure "throws" inference before the pattern is type checked, which means that it is incorrect (but only in subtle cases). - When diagnosing pointless 'as' patterns like: switch 4 { case _ as Int: break say "'as' test is always true" instead of "'is' test is always true". Swift SVN r28774