aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/core/pickling/TreeUnpickler.scala8
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala2
-rw-r--r--test/dotc/tests.scala2
3 files changed, 6 insertions, 6 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/TreeUnpickler.scala b/src/dotty/tools/dotc/core/pickling/TreeUnpickler.scala
index 66891b448..0cac3491a 100644
--- a/src/dotty/tools/dotc/core/pickling/TreeUnpickler.scala
+++ b/src/dotty/tools/dotc/core/pickling/TreeUnpickler.scala
@@ -787,10 +787,10 @@ class TreeUnpickler(reader: TastyReader, tastyName: TastyName.Table) {
assert(currentAddr == end, s"$start $currentAddr $end ${astTagToString(tag)}")
result
}
-
- setPos(start,
- if (tag < firstLengthTreeTag) readSimpleTerm()
- else readLengthTerm())
+
+ val tree = if (tag < firstLengthTreeTag) readSimpleTerm() else readLengthTerm()
+ tree.overwriteType(tree.tpe.simplified)
+ setPos(start, tree)
}
def readTpt()(implicit ctx: Context) = {
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala
index b743ae2de..ceab2fd2b 100644
--- a/src/dotty/tools/dotc/typer/Typer.scala
+++ b/src/dotty/tools/dotc/typer/Typer.scala
@@ -475,7 +475,7 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
val expr1 = ascribeType(expr, pt)
cpy.Block(block)(stats, expr1) withType expr1.tpe // no assignType here because avoid is redundant
case _ =>
- Typed(tree, TypeTree(pt))
+ Typed(tree, TypeTree(pt.simplified))
}
val leaks = escapingRefs(tree, localSyms)
if (leaks.isEmpty) tree
diff --git a/test/dotc/tests.scala b/test/dotc/tests.scala
index ba9f49455..39dd16dc9 100644
--- a/test/dotc/tests.scala
+++ b/test/dotc/tests.scala
@@ -32,7 +32,7 @@ class tests extends CompilerTest {
val newDir = "./tests/new/"
val dotcDir = "./src/dotty/"
- @Test def pickle_pickleOK = compileDir(posDir + "pickleOK/", testPickling)
+ @Test def pickle_pickleOK = compileDir(posDir + "pickleOK/", "-Xprint-types" :: testPickling)
@Test def pickle_pickling = compileDir(dotcDir + "tools/dotc/core/pickling", testPickling)
@Test def pos_t2168_pat = compileFile(posDir, "t2168")