File tree Expand file tree Collapse file tree 2 files changed +11
-1
lines changed
compiler/src/dotty/tools/dotc/typer Expand file tree Collapse file tree 2 files changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -1738,7 +1738,9 @@ class Typer(@constructorOnly nestingLevel: Int = 0) extends Namer
17381738 // check `pat` here and throw away the result.
17391739 val gadtCtx : Context = ctx.fresh.setFreshGADTBounds
17401740 val pat1 = typedPattern(pat, selType)(using gadtCtx)
1741- val Typed (_, tpt) = tpd.unbind(tpd.unsplice(pat1)): @ unchecked
1741+ val tpt = tpd.unbind(tpd.unsplice(pat1)) match
1742+ case Typed (_, tpt) => tpt
1743+ case UnApply (fun, _, p1 :: _) if fun.symbol == defn.TypeTest_unapply => p1
17421744 instantiateMatchTypeProto(pat1, pt) match {
17431745 case defn.MatchCase (patternTp, _) => tpt.tpe frozen_=:= patternTp
17441746 case _ => false
Original file line number Diff line number Diff line change 1+
2+ trait UsingTypeTest [B ](using reflect.TypeTest [Int , B ]):
3+
4+ type M [U <: Int ] = U match
5+ case B => String
6+
7+ def m (t : Int ): M [Int ] = t match
8+ case _ : B => " hello"
You can’t perform that action at this time.
0 commit comments