aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2014-10-28 21:13:47 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-10-30 17:22:14 +0100
commit0c967f06e9bf51e02903d1bb2c79fa1c4febf98d (patch)
tree6e23dcff2c4f19e27b246b89794deb4e4d79500f
parente07e9a3986ec59cab1f0ec2b9b4458fd6a64d8c8 (diff)
downloaddotty-0c967f06e9bf51e02903d1bb2c79fa1c4febf98d.tar.gz
dotty-0c967f06e9bf51e02903d1bb2c79fa1c4febf98d.tar.bz2
dotty-0c967f06e9bf51e02903d1bb2c79fa1c4febf98d.zip
Get rid of ExceptionHandlerSel.
It's not used anymore as superseded by previous commit.
-rw-r--r--src/dotty/tools/dotc/ast/Trees.scala5
-rw-r--r--src/dotty/tools/dotc/transform/PatternMatcher.scala4
-rw-r--r--src/dotty/tools/dotc/transform/TailRec.scala11
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala2
4 files changed, 2 insertions, 20 deletions
diff --git a/src/dotty/tools/dotc/ast/Trees.scala b/src/dotty/tools/dotc/ast/Trees.scala
index 4cd41cc2e..71026a449 100644
--- a/src/dotty/tools/dotc/ast/Trees.scala
+++ b/src/dotty/tools/dotc/ast/Trees.scala
@@ -804,7 +804,7 @@ object Trees {
type ThisTree[-T >: Untyped] = Thicket[T]
override def isEmpty: Boolean = trees.isEmpty
override def toList: List[Tree[T]] = flatten(trees)
- override def toString = if(this eq theExceptionHandlerSel) "ExceptionSel" else if (isEmpty) "EmptyTree" else "Thicket(" + trees.mkString(", ") + ")"
+ override def toString = if (isEmpty) "EmptyTree" else "Thicket(" + trees.mkString(", ") + ")"
override def withPos(pos: Position): this.type = {
val newTrees = trees.map(_.withPos(pos))
new Thicket[T](newTrees).asInstanceOf[this.type]
@@ -818,11 +818,9 @@ object Trees {
val theEmptyTree: Thicket[Type] = Thicket(Nil)
val theEmptyValDef = new EmptyValDef[Type]
- val theExceptionHandlerSel: Thicket[Type] = Thicket(Nil)
def genericEmptyValDef[T >: Untyped]: ValDef[T] = theEmptyValDef.asInstanceOf[ValDef[T]]
def genericEmptyTree[T >: Untyped]: Thicket[T] = theEmptyTree.asInstanceOf[Thicket[T]]
- def genericExceptionHandlerSel[T >: Untyped]: Thicket[T] = theExceptionHandlerSel.asInstanceOf[Thicket[T]]
def flatten[T >: Untyped](trees: List[Tree[T]]): List[Tree[T]] = {
var buf: ListBuffer[Tree[T]] = null
@@ -913,7 +911,6 @@ object Trees {
type Thicket = Trees.Thicket[T]
val EmptyTree: Thicket = genericEmptyTree
- val ExceptionHandlerSel: Thicket = genericExceptionHandlerSel // selector used in exception hanlder of Try nodes
val EmptyValDef: ValDef = genericEmptyValDef
// ----- Auxiliary creation methods ------------------
diff --git a/src/dotty/tools/dotc/transform/PatternMatcher.scala b/src/dotty/tools/dotc/transform/PatternMatcher.scala
index 842582592..7631c99c8 100644
--- a/src/dotty/tools/dotc/transform/PatternMatcher.scala
+++ b/src/dotty/tools/dotc/transform/PatternMatcher.scala
@@ -1142,9 +1142,7 @@ class PatternMatcher extends MiniPhaseTransform with DenotTransformer {thisTrans
val selectorTp = elimAnonymousClass(sel.tpe.widen/*withoutAnnotations*/)
- val selectorSym =
- if (sel ne ExceptionHandlerSel) freshSym(sel.pos, selectorTp, "selector")
- else freshSym(match_.pos, defn.ThrowableType, "ex")
+ val selectorSym = freshSym(sel.pos, selectorTp, "selector")
val (nonSyntheticCases, defaultOverride) = cases match {
case init :+ last if isSyntheticDefaultCase(last) => (init, Some(((scrut: Symbol) => last.body)))
diff --git a/src/dotty/tools/dotc/transform/TailRec.scala b/src/dotty/tools/dotc/transform/TailRec.scala
index 46028e0fc..376a41646 100644
--- a/src/dotty/tools/dotc/transform/TailRec.scala
+++ b/src/dotty/tools/dotc/transform/TailRec.scala
@@ -231,17 +231,6 @@ class TailRec extends MiniPhaseTransform with DenotTransformer with FullParamete
}
def rewriteTry(tree: Try): Try = {
- def transformHandlers(t: Tree): Tree = {
- t match {
- case Block(List((d: DefDef)), cl@Closure(Nil, _, EmptyTree)) =>
- val newDef = cpy.DefDef(d)(rhs = transform(d.rhs))
- Block(List(newDef), cl)
- case Match(Typed(ExceptionHandlerSel, _), _) =>
- transform(t)
- case _: Ident|_: Apply| _: TypeApply => t // handler is an external function
- case _ => assert(false, s"failed to deconstruct try handler ${t.show}"); ???
- }
- }
if (tree.finalizer eq EmptyTree) {
// SI-1672 Catches are in tail position when there is no finalizer
tpd.cpy.Try(tree)(
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala
index 4b49d2669..89edd29ca 100644
--- a/src/dotty/tools/dotc/typer/Typer.scala
+++ b/src/dotty/tools/dotc/typer/Typer.scala
@@ -345,8 +345,6 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
assignType(cpy.Typed(tree)(expr1, tpt1), tpt1)
}
tree.expr match {
- case ExceptionHandlerSel if (tree.tpt.tpe == defn.ThrowableType) =>
- tree withType defn.ThrowableType
case id: untpd.Ident if (ctx.mode is Mode.Pattern) && isVarPattern(id) =>
if (id.name == nme.WILDCARD) regularTyped(isWildcard = true)
else {