diff options
author | Paul Phillips <paulp@improving.org> | 2012-03-22 23:23:02 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-03-22 23:29:30 -0700 |
commit | 5af2bf54d21ac63236cd6e68586b2c38fa0f28c3 (patch) | |
tree | cf010a43bd808c85dd30edd363daadfe9ae8c529 /src | |
parent | 359b58b69977bda71f2f7eb642ab684ce156d4da (diff) | |
download | scala-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')
-rw-r--r-- | src/compiler/scala/reflect/internal/Trees.scala | 12 |
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) |