diff options
author | Martin Odersky <odersky@gmail.com> | 2016-10-12 14:37:37 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-10-15 19:33:51 +0200 |
commit | 8b55988c64ab7d777b6bf39987af6bafe070c2fb (patch) | |
tree | f033a4db58bfab9802dbb8e8cdf5b0f693bf402d /src/dotty/tools/dotc/ast/Trees.scala | |
parent | 2575d11bd1a670ace8bd7e91777ea135759af51f (diff) | |
download | dotty-8b55988c64ab7d777b6bf39987af6bafe070c2fb.tar.gz dotty-8b55988c64ab7d777b6bf39987af6bafe070c2fb.tar.bz2 dotty-8b55988c64ab7d777b6bf39987af6bafe070c2fb.zip |
Drop original on TypeTree
The plan is to keep original type until after pickling,
and afterwards replace it with a simple TypeTree.
# Conflicts:
# src/dotty/tools/dotc/core/tasty/TreePickler.scala
Diffstat (limited to 'src/dotty/tools/dotc/ast/Trees.scala')
-rw-r--r-- | src/dotty/tools/dotc/ast/Trees.scala | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/dotty/tools/dotc/ast/Trees.scala b/src/dotty/tools/dotc/ast/Trees.scala index 2c02e7d1e..dca66a01d 100644 --- a/src/dotty/tools/dotc/ast/Trees.scala +++ b/src/dotty/tools/dotc/ast/Trees.scala @@ -520,13 +520,12 @@ object Trees { } /** A type tree that represents an existing or inferred type */ - case class TypeTree[-T >: Untyped] private[ast] (original: Tree[T]) + case class TypeTree[-T >: Untyped] () extends DenotingTree[T] with TypTree[T] { type ThisTree[-T >: Untyped] = TypeTree[T] - override def initialPos = NoPosition - override def isEmpty = !hasType && original.isEmpty + override def isEmpty = !hasType override def toString = - s"TypeTree${if (hasType) s"[$typeOpt]" else s"($original)"}" + s"TypeTree${if (hasType) s"[$typeOpt]" else ""}" } /** ref.type */ @@ -960,10 +959,6 @@ object Trees { case tree: Inlined if (call eq tree.call) && (bindings eq tree.bindings) && (expansion eq tree.expansion) => tree case _ => finalize(tree, untpd.Inlined(call, bindings, expansion)) } - def TypeTree(tree: Tree)(original: Tree): TypeTree = tree match { - case tree: TypeTree if original eq tree.original => tree - case _ => finalize(tree, untpd.TypeTree(original)) - } def SingletonTypeTree(tree: Tree)(ref: Tree): SingletonTypeTree = tree match { case tree: SingletonTypeTree if ref eq tree.ref => tree case _ => finalize(tree, untpd.SingletonTypeTree(ref)) @@ -1106,7 +1101,7 @@ object Trees { cpy.SeqLiteral(tree)(transform(elems), transform(elemtpt)) case Inlined(call, bindings, expansion) => cpy.Inlined(tree)(call, transformSub(bindings), transform(expansion)) - case TypeTree(original) => + case TypeTree() => tree case SingletonTypeTree(ref) => cpy.SingletonTypeTree(tree)(transform(ref)) @@ -1210,7 +1205,7 @@ object Trees { this(this(x, elems), elemtpt) case Inlined(call, bindings, expansion) => this(this(x, bindings), expansion) - case TypeTree(original) => + case TypeTree() => x case SingletonTypeTree(ref) => this(x, ref) |