diff options
-rw-r--r-- | src/dotty/tools/dotc/typer/Typer.scala | 2 | ||||
-rw-r--r-- | tests/pos/Patterns.scala | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala index a3c64f526..b28ac9bc5 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 e9bce87a9..aa369a77b 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 { |