aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/tasty/TreePickler.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-10-21 13:58:00 +0200
committerMartin Odersky <odersky@gmail.com>2016-10-31 14:44:59 +0100
commit59e83ce49fbb81f402be7d663f8f38bed0f556df (patch)
tree1fd3adae16570b5a42747b792f3dd651d5e2fddc /src/dotty/tools/dotc/core/tasty/TreePickler.scala
parent08658cb20fee008217966830c51a0ff56ee1ae72 (diff)
downloaddotty-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.scala6
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)