diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala index a3c64f526379..b28ac9bc5f8e 100644 --- a/src/dotty/tools/dotc/typer/Typer.scala +++ b/src/dotty/tools/dotc/typer/Typer.scala @@ -826,7 +826,7 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit } def typedAppliedTypeTree(tree: untpd.AppliedTypeTree)(implicit ctx: Context): Tree = track("typedAppliedTypeTree") { - val tpt1 = typed(tree.tpt) + val tpt1 = typed(tree.tpt)(ctx retractMode Mode.Pattern) val tparams = tpt1.tpe.typeParams var args = tree.args if (tparams.isEmpty) { diff --git a/tests/pos/Patterns.scala b/tests/pos/Patterns.scala index e9bce87a933e..aa369a77bce2 100644 --- a/tests/pos/Patterns.scala +++ b/tests/pos/Patterns.scala @@ -93,6 +93,15 @@ object Patterns { case t: a2.B => t } + + class caseWithPatternVariableHelper1[A] + class caseWithPatternVariableHelper2[A] + + def caseWithPatternVariable(x: Any) = x match { + case a: caseWithPatternVariableHelper1[_] => () + case b: caseWithPatternVariableHelper2[_] => () + } + } object NestedPattern {