aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Trees.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-05-17 13:28:02 +0200
committerMartin Odersky <odersky@gmail.com>2013-05-17 13:28:02 +0200
commit94b9a2a0d083cca2ba1358582d8d6fd8143b0b31 (patch)
treee84279f763b7a241bf18c27c7227d66618936719 /src/dotty/tools/dotc/core/Trees.scala
parentd2261b37cf23ccd04e9029f3556c2dc9e2bdf077 (diff)
downloaddotty-94b9a2a0d083cca2ba1358582d8d6fd8143b0b31.tar.gz
dotty-94b9a2a0d083cca2ba1358582d8d6fd8143b0b31.tar.bz2
dotty-94b9a2a0d083cca2ba1358582d8d6fd8143b0b31.zip
Refactored Printing architecture.
Split printers into several files. Added refined printing of trees. Changed Showable and generalized printing under a precedence.
Diffstat (limited to 'src/dotty/tools/dotc/core/Trees.scala')
-rw-r--r--src/dotty/tools/dotc/core/Trees.scala16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/dotty/tools/dotc/core/Trees.scala b/src/dotty/tools/dotc/core/Trees.scala
index f99e72196..9ac738929 100644
--- a/src/dotty/tools/dotc/core/Trees.scala
+++ b/src/dotty/tools/dotc/core/Trees.scala
@@ -8,6 +8,7 @@ import language.higherKinds
import collection.mutable
import collection.mutable.ArrayBuffer
import parsing.Tokens.Token
+import printing.Printer
import util.Stats
object Trees {
@@ -212,7 +213,7 @@ object Trees {
def orElse(that: => Tree[T]): Tree[T] =
if (this eq theEmptyTree) that else this
- override def toText(implicit ctx: Context) = ctx.toText(this)
+ override def toText(printer: Printer) = printer.toText(this)
override def hashCode(): Int = System.identityHashCode(this)
override def equals(that: Any) = this eq that.asInstanceOf[AnyRef]
@@ -429,7 +430,7 @@ object Trees {
}
/** try block catch handler finally finalizer */
- case class Try[T >: Untyped](block: Tree[T], handler: Tree[T], finalizer: Tree[T])
+ case class Try[T >: Untyped](expr: Tree[T], handler: Tree[T], finalizer: Tree[T])
extends TermTree[T] {
type ThisTree[T >: Untyped] = Try[T]
}
@@ -531,11 +532,6 @@ object Trees {
type ThisTree[T >: Untyped] = DefDef[T]
}
- class ImplicitDefDef[T >: Untyped](mods: Modifiers[T], name: TermName, tparams: List[TypeDef[T]], vparamss: List[List[ValDef[T]]], tpt: Tree[T], rhs: Tree[T]) extends DefDef[T](mods, name, tparams, vparamss, tpt, rhs) {
- override def copy[T >: Untyped](mods: Modifiers[T], name: TermName, tparams: List[TypeDef[T]], vparamss: List[List[ValDef[T]]], tpt: Tree[T], rhs: Tree[T]) =
- new ImplicitDefDef[T](mods, name, tparams, vparamss, tpt, rhs)
- }
-
/** mods type name = rhs or
* mods type name >: lo <: hi, if rhs = TypeBoundsTree(lo, hi)
*/
@@ -769,9 +765,9 @@ object Trees {
case tree: Return[_] if (expr eq tree.expr) && (from eq tree.from) => tree
case _ => Return(expr, from).copyAttr(tree)
}
- def derivedTry(block: Tree[T], handler: Tree[T], finalizer: Tree[T]): Try[T] = tree match {
- case tree: Try[_] if (block eq tree.block) && (handler eq tree.handler) && (finalizer eq tree.finalizer) => tree
- case _ => Try(block, handler, finalizer).copyAttr(tree)
+ def derivedTry(expr: Tree[T], handler: Tree[T], finalizer: Tree[T]): Try[T] = tree match {
+ case tree: Try[_] if (expr eq tree.expr) && (handler eq tree.handler) && (finalizer eq tree.finalizer) => tree
+ case _ => Try(expr, handler, finalizer).copyAttr(tree)
}
def derivedThrow(expr: Tree[T]): Throw[T] = tree match {
case tree: Throw[_] if (expr eq tree.expr) => tree