diff options
author | Martin Odersky <odersky@gmail.com> | 2012-12-18 15:26:28 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2012-12-18 15:26:28 +0100 |
commit | 5ad4db0a737619a75fc686590541a3e6285776e7 (patch) | |
tree | 9c586ec2ed6151c35e2d4000f29deb4848f06ed1 /src | |
parent | 2efa4cb538928fd5a4a3b0a9e87b4406a48ab3f2 (diff) | |
download | dotty-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.scala | 31 |
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) |