## Compiler version `3.3.1` ## Minimized code <!-- This code should be self contained, compilable (with possible failures) and as small as possible. Ideally, we should be able to just copy this code in a file and run `scalac` (and maybe `scala`) to reproduce the issue. --> ```Scala object Test: class Custom extends scala.Product1[String]: def length: Int = ??? def apply(i: Int): Boolean = ??? def drop(n: Int): scala.Seq[Boolean] = ??? def toSeq: scala.Seq[Boolean] = ??? def canEqual(that: Any): Boolean = ??? val _1: String = ??? val _2: String = ??? val _3: Seq[String] = ??? object A: def unapplySeq(i: Int): Custom = ??? val A(a, rest*) = 1 ``` ## Output ```scala this case is unreachable since type String is not a subclass of trait Seq val A(a, rest*) = 1 ``` ## Expectation It should compile and `A(a, rest*)` should be a sequence-match. [The specification](https://docs.scala-lang.org/scala3/reference/changed-features/pattern-matching.html#) states that sequence-matches have higher priority than product-sequence-matches, but this seems not to be correctly implemented Note that the code compiles as expected if any of the `_X` fields is removed