Commits

Joe Groff committed a5a64fcd968
SILGen: Elide rows prior to a pattern ctor's first specialization. Since pattern matches semantically occur in source order, we need to exclude rows prior to the first occurrence of a pattern constructor when producing the specialized clause matrix for that constructor. This falls out naturally for constructors that are orthogonal, such as oneof alternatives, but will be required for 'is' patterns, where specializations can overlap due to subtype relationships, as in: class B {} class D : B {} var b:B var x:Int switch (b, x) { case (is B, 0): foo() case (is D, 1): bar() case (is B, 2): bas() } The 'is D' specialization needs to exclude the first 'is B' pattern. Swift SVN r6028