aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala2
-rw-r--r--tests/pos/Patterns.scala9
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 {