summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-03-22 23:23:02 -0700
committerPaul Phillips <paulp@improving.org>2012-03-22 23:29:30 -0700
commit5af2bf54d21ac63236cd6e68586b2c38fa0f28c3 (patch)
treecf010a43bd808c85dd30edd363daadfe9ae8c529 /src/compiler
parent359b58b69977bda71f2f7eb642ab684ce156d4da (diff)
downloadscala-5af2bf54d21ac63236cd6e68586b2c38fa0f28c3.tar.gz
scala-5af2bf54d21ac63236cd6e68586b2c38fa0f28c3.tar.bz2
scala-5af2bf54d21ac63236cd6e68586b2c38fa0f28c3.zip
Revert "Made changeOwner more robust; now also deals with return expressions."
This reverts commit 19a48510c2e18430a35319c04dfe3bad7119f23f.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/reflect/internal/Trees.scala12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/compiler/scala/reflect/internal/Trees.scala b/src/compiler/scala/reflect/internal/Trees.scala
index 1a40e0105c..ac2147d284 100644
--- a/src/compiler/scala/reflect/internal/Trees.scala
+++ b/src/compiler/scala/reflect/internal/Trees.scala
@@ -324,14 +324,10 @@ trait Trees extends api.Trees { self: SymbolTable =>
}
class ChangeOwnerTraverser(val oldowner: Symbol, val newowner: Symbol) extends Traverser {
- def changeOwner(tree: Tree) = tree match {
- case Return(expr) =>
- if (tree.symbol == oldowner)
- tree.symbol = newowner
- case _: DefTree | _: Function =>
- if (tree.symbol != NoSymbol && tree.symbol.owner == oldowner)
- tree.symbol.owner = newowner
- case _ =>
+ def changeOwner(tree: Tree) = {
+ if ((tree.isDef || tree.isInstanceOf[Function]) &&
+ tree.symbol != NoSymbol && tree.symbol.owner == oldowner)
+ tree.symbol.owner = newowner
}
override def traverse(tree: Tree) {
changeOwner(tree)