Commits

Joe Groff committed 5744b57e8f4
SILGen: Handle an 'is T' pattern in a switch that introduces concrete-to-archetype casts. When destructuring the 'is Int' pattern in: func f<T, U>(t: T, u: U) { switch t { case is Int: println("Int") case is U: println("U") case _: println("other") } } there is the possibility that 'U' is 'Int', so it needs to be included in the specialization on 'is Int' using a concrete-to-archetype cast from Int to U. This wasn't handled correctly and we tried to do a super-to-archetype class cast instead, which blew up because 'Int' is neither a class nor statically related to U. Fixes <rdar://problem/14826416>. Swift SVN r9869