summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/internal/Trees.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-02-27 21:58:26 -0800
committerPaul Phillips <paulp@improving.org>2012-02-27 22:12:52 -0800
commit0bcc8f8f92bbee772924813d00512f3765d4beee (patch)
tree98e9d0320fb8be7ee91ffe3312631b0c867106e1 /src/compiler/scala/reflect/internal/Trees.scala
parent07ffa8d66dedcf2bf2ac26d5e31f09922f5479ce (diff)
downloadscala-0bcc8f8f92bbee772924813d00512f3765d4beee.tar.gz
scala-0bcc8f8f92bbee772924813d00512f3765d4beee.tar.bz2
scala-0bcc8f8f92bbee772924813d00512f3765d4beee.zip
Specialized NonLocalReturnControl.
From the extempore archive of already implemented things.
Diffstat (limited to 'src/compiler/scala/reflect/internal/Trees.scala')
-rw-r--r--src/compiler/scala/reflect/internal/Trees.scala13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/compiler/scala/reflect/internal/Trees.scala b/src/compiler/scala/reflect/internal/Trees.scala
index 610c6dc493..3782b24c02 100644
--- a/src/compiler/scala/reflect/internal/Trees.scala
+++ b/src/compiler/scala/reflect/internal/Trees.scala
@@ -230,17 +230,18 @@ trait Trees extends api.Trees { self: SymbolTable =>
def Bind(sym: Symbol, body: Tree): Bind =
Bind(sym.name, body) setSymbol sym
- /** 0-1 argument list new, based on a symbol or type.
- */
- def New(sym: Symbol, args: Tree*): Tree =
- New(sym.tpe, args: _*)
+ def Try(body: Tree, cases: (Tree, Tree)*): Try =
+ Try(body, cases.toList map { case (pat, rhs) => CaseDef(pat, EmptyTree, rhs) }, EmptyTree)
- def New(tpe: Type, args: Tree*): Tree =
- New(TypeTree(tpe), List(args.toList))
+ def Throw(tpe: Type, args: Tree*): Throw =
+ Throw(New(tpe, args: _*))
def Apply(sym: Symbol, args: Tree*): Tree =
Apply(Ident(sym), args.toList)
+ def New(sym: Symbol, args: Tree*): Tree =
+ New(sym.tpe, args: _*)
+
def Super(sym: Symbol, mix: TypeName): Tree = Super(This(sym), mix)
/** Block factory that flattens directly nested blocks.