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 @@ -1814,7 +1814,9 @@ class Typer(@constructorOnly nestingLevel: Int = 0) extends Namer
18141814 // check `pat` here and throw away the result.
18151815 val gadtCtx : Context = ctx.fresh.setFreshGADTBounds
18161816 val pat1 = typedPattern(pat, selType)(using gadtCtx)
1817- val Typed (_, tpt) = tpd.unbind(tpd.unsplice(pat1)): @ unchecked
1817+ val tpt = tpd.unbind(tpd.unsplice(pat1)) match
1818+ case Typed (_, tpt) => tpt
1819+ case UnApply (fun, _, p1 :: _) if fun.symbol == defn.TypeTest_unapply => p1
18181820 instantiateMatchTypeProto(pat1, pt) match {
18191821 case defn.MatchCase (patternTp, _) => tpt.tpe frozen_=:= patternTp
18201822 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