summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/Trees.scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-05-17 18:35:09 +0300
committerEugene Burmako <xeno.by@gmail.com>2012-05-17 18:36:49 +0300
commit7813d660bea0fd9b987493baef019ea92f876a2f (patch)
treeee64be0684775d7b33161530296fe0a5816b6e22 /src/compiler/scala/tools/nsc/ast/Trees.scala
parent8ce86909bf7d7b7ff5c1f65b35288c90c1f8548a (diff)
downloadscala-7813d660bea0fd9b987493baef019ea92f876a2f.tar.gz
scala-7813d660bea0fd9b987493baef019ea92f876a2f.tar.bz2
scala-7813d660bea0fd9b987493baef019ea92f876a2f.zip
fixes resetAttrs
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/Trees.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ast/Trees.scala13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/Trees.scala b/src/compiler/scala/tools/nsc/ast/Trees.scala
index 1b8fe9a91a..adc490c8e1 100644
--- a/src/compiler/scala/tools/nsc/ast/Trees.scala
+++ b/src/compiler/scala/tools/nsc/ast/Trees.scala
@@ -264,9 +264,9 @@ trait Trees extends reflect.internal.Trees { self: Global =>
// def resetAllAttrs[A<:Tree](x:A): A = { new ResetAttrsTraverser().traverse(x); x }
// def resetLocalAttrs[A<:Tree](x:A): A = { new ResetLocalAttrsTraverser().traverse(x); x }
- def resetAllAttrs[A <: Tree](x: A, leaveAlone: Tree => Boolean = null): A = new ResetAttrs(false, leaveAlone).transform(x)
- def resetLocalAttrs[A <: Tree](x: A, leaveAlone: Tree => Boolean = null): A = new ResetAttrs(true, leaveAlone).transform(x)
- def resetLocalAttrsKeepLabels[A<:Tree](x: A, leaveAlone: Tree => Boolean = null): A = new ResetAttrs(true, leaveAlone, true).transform(x)
+ def resetAllAttrs(x: Tree, leaveAlone: Tree => Boolean = null): Tree = new ResetAttrs(false, leaveAlone).transform(x)
+ def resetLocalAttrs(x: Tree, leaveAlone: Tree => Boolean = null): Tree = new ResetAttrs(true, leaveAlone).transform(x)
+ def resetLocalAttrsKeepLabels(x: Tree, leaveAlone: Tree => Boolean = null): Tree = new ResetAttrs(true, leaveAlone, true).transform(x)
/** A transformer which resets symbol and tpe fields of all nodes in a given tree,
* with special treatment of:
@@ -351,7 +351,7 @@ trait Trees extends reflect.internal.Trees { self: Global =>
}
}
- def transform[T <: Tree](x: T): T = {
+ def transform(x: Tree): Tree = {
if (localOnly)
new MarkLocals().traverse(x)
@@ -361,10 +361,7 @@ trait Trees extends reflect.internal.Trees { self: Global =>
trace("locals (%d total): %n".format(orderedLocals.size))(msg)
}
- val x1 = new Transformer().transform(x)
- // The loose invariant is a temporary workaround for SI-5803
- assert(x.getClass.isInstance(x1) || (x.isInstanceOf[ApplyConstructor] && x1.isInstanceOf[Apply]), (x.getClass, x1.getClass))
- x1.asInstanceOf[T]
+ new Transformer().transform(x)
}
}