aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2012-12-18 15:26:28 +0100
committerMartin Odersky <odersky@gmail.com>2012-12-18 15:26:28 +0100
commit5ad4db0a737619a75fc686590541a3e6285776e7 (patch)
tree9c586ec2ed6151c35e2d4000f29deb4848f06ed1 /src
parent2efa4cb538928fd5a4a3b0a9e87b4406a48ab3f2 (diff)
downloaddotty-5ad4db0a737619a75fc686590541a3e6285776e7.tar.gz
dotty-5ad4db0a737619a75fc686590541a3e6285776e7.tar.bz2
dotty-5ad4db0a737619a75fc686590541a3e6285776e7.zip
Simpler implementation of shalloCopy as clone.
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/core/Trees.scala31
1 files changed, 8 insertions, 23 deletions
diff --git a/src/dotty/tools/dotc/core/Trees.scala b/src/dotty/tools/dotc/core/Trees.scala
index a909e37bc..26cb0a0cc 100644
--- a/src/dotty/tools/dotc/core/Trees.scala
+++ b/src/dotty/tools/dotc/core/Trees.scala
@@ -55,41 +55,26 @@ object Trees {
tree
}
- def shallowCopy: Tree[T]
+ def shallowCopy: Tree[T] = clone.asInstanceOf[Tree[T]]
}
- case class Ident[T](name: Name)(implicit val pos: Position) extends Tree[T] {
- def shallowCopy = copy()
- }
+ case class Ident[T](name: Name)(implicit val pos: Position) extends Tree[T]
- case class Select[T](qualifier: Tree[T], name: Name)(implicit val pos: Position) extends Tree[T] {
- def shallowCopy = copy()
- }
+ case class Select[T](qualifier: Tree[T], name: Name)(implicit val pos: Position) extends Tree[T]
- case class Apply[T](fun: Tree[T], arg: Tree[T])(implicit val pos: Position) extends Tree[T] {
- def shallowCopy = copy()
- }
+ case class Apply[T](fun: Tree[T], arg: Tree[T])(implicit val pos: Position) extends Tree[T]
- case class Pair[T](left: Tree[T], right: Tree[T])(implicit val pos: Position) extends Tree[T] {
- def shallowCopy = copy()
- }
+ case class Pair[T](left: Tree[T], right: Tree[T])(implicit val pos: Position) extends Tree[T]
- case class ValDef[T](mods: Modifiers, name: Name, rtpe: Tree[T], rhs: Tree[T])(implicit val pos: Position) extends Tree[T] {
- def shallowCopy = copy()
- }
+ case class ValDef[T](mods: Modifiers, name: Name, rtpe: Tree[T], rhs: Tree[T])(implicit val pos: Position) extends Tree[T]
- case class TypeDef[T](mods: Modifiers, name: Name, rhs: Tree[T])(implicit val pos: Position) extends Tree[T] {
- def shallowCopy = copy()
- }
+ case class TypeDef[T](mods: Modifiers, name: Name, rhs: Tree[T])(implicit val pos: Position) extends Tree[T]
- case class DefDef[T](mods: Modifiers, name: Name, tparams: List[TypeDef[T]], vparamss: List[List[ValDef[T]]], rtpe: Tree[T], rhs: Tree[T])(implicit val pos: Position) extends Tree[T] {
- def shallowCopy = copy()
- }
+ case class DefDef[T](mods: Modifiers, name: Name, tparams: List[TypeDef[T]], vparamss: List[List[ValDef[T]]], rtpe: Tree[T], rhs: Tree[T])(implicit val pos: Position) extends Tree[T]
case class TypedSplice(tree: Tree[Type]) extends Tree[missing.Type] {
def pos = tree.pos
- def shallowCopy = copy()
}
implicit def embedTyped(tree: Tree[Type]): Tree[missing.Type] = TypedSplice(tree)