diff options
author | Martin Odersky <odersky@gmail.com> | 2016-10-21 13:58:00 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-10-31 14:44:59 +0100 |
commit | 59e83ce49fbb81f402be7d663f8f38bed0f556df (patch) | |
tree | 1fd3adae16570b5a42747b792f3dd651d5e2fddc /src/dotty/tools/dotc/core/tasty/TreePickler.scala | |
parent | 08658cb20fee008217966830c51a0ff56ee1ae72 (diff) | |
download | dotty-59e83ce49fbb81f402be7d663f8f38bed0f556df.tar.gz dotty-59e83ce49fbb81f402be7d663f8f38bed0f556df.tar.bz2 dotty-59e83ce49fbb81f402be7d663f8f38bed0f556df.zip |
Don't convert to TypeTrees before pickling
If we want to pickle types with positions we should not
converyt to TypeTrees before pickling. Instead, type trees
are now converted to TypeTrees in FirstTransform.
Diffstat (limited to 'src/dotty/tools/dotc/core/tasty/TreePickler.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/tasty/TreePickler.scala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/tasty/TreePickler.scala b/src/dotty/tools/dotc/core/tasty/TreePickler.scala index 7f1895cc3..a1ac69e0d 100644 --- a/src/dotty/tools/dotc/core/tasty/TreePickler.scala +++ b/src/dotty/tools/dotc/core/tasty/TreePickler.scala @@ -319,8 +319,8 @@ class TreePickler(pickler: TastyPickler) { pickleName(sym) pickleParams tpt match { - case tpt: TypeTree => pickleTpt(tpt) case templ: Template => pickleTree(tpt) + case _ if tpt.isType => pickleTpt(tpt) } pickleTreeUnlessEmpty(rhs) pickleModifiers(sym) @@ -349,6 +349,8 @@ class TreePickler(pickler: TastyPickler) { def pickleTree(tree: Tree)(implicit ctx: Context): Unit = try { registerTreeAddr(tree) tree match { + case tree if tree.isType => + pickleTpt(tree) case Ident(name) => tree.tpe match { case tp: TermRef => pickleType(tp) @@ -442,8 +444,6 @@ class TreePickler(pickler: TastyPickler) { writeByte(INLINED) bindings.foreach(preRegister) withLength { pickleTree(call); pickleTree(expansion); bindings.foreach(pickleTree) } - case TypeTree() => - pickleTpt(tree) case Bind(name, body) => registerDef(tree.symbol) writeByte(BIND) |