diff options
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/TreeUnpickler.scala | 8 | ||||
-rw-r--r-- | src/dotty/tools/dotc/typer/Typer.scala | 2 | ||||
-rw-r--r-- | test/dotc/tests.scala | 2 |
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") |