aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/core/Types.scala8
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala2
2 files changed, 8 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala
index 1d438daf0..e4f228915 100644
--- a/src/dotty/tools/dotc/core/Types.scala
+++ b/src/dotty/tools/dotc/core/Types.scala
@@ -2884,7 +2884,13 @@ object Types {
tp match {
case tp: NamedType =>
if (stopAtStatic && tp.symbol.isStatic) tp
- else tp.derivedSelect(this(tp.prefix))
+ else {
+ val saved = variance
+ variance = 0
+ val result = tp.derivedSelect(this(tp.prefix))
+ variance = saved
+ result
+ }
case _: ThisType
| _: BoundType
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) {