summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2009-04-28 15:25:12 +0000
committerIulian Dragos <jaguarul@gmail.com>2009-04-28 15:25:12 +0000
commitae897e4d285782753670b082f62d7f14936a4bef (patch)
tree781d11f362c057faa72bfd2fc0fc9563a8104f85 /src
parentbdc8c11581b0fc67cf895ba349e43b2081e29c59 (diff)
downloadscala-ae897e4d285782753670b082f62d7f14936a4bef.tar.gz
scala-ae897e4d285782753670b082f62d7f14936a4bef.tar.bz2
scala-ae897e4d285782753670b082f62d7f14936a4bef.zip
Fixed wrong attribution of duplicated labels in...
Fixed wrong attribution of duplicated labels in finally blocks.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/GenICode.scala8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala b/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala
index 52b8838c04..76a6498e2d 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala
@@ -554,8 +554,6 @@ abstract class GenICode extends SubComponent {
})
}
- if (settings.debug.value)
- log("Duplicated finalizer: " + duplicateFinalizer)
ctx.Try(
bodyCtx => {
generatedType = kind; //toTypeKind(block.tpe);
@@ -1704,8 +1702,8 @@ abstract class GenICode extends SubComponent {
sym.setInfo(oldLabel.tpe)
labels(oldLabel) = sym
}
- val tree = copy.Apply(t, transform(fun), transformTrees(args))
- tree.symbol = labels(t.symbol)
+ val tree = Apply(global.gen.mkAttributedRef(labels(t.symbol)), transformTrees(args)).setPos(t.pos)
+ tree.tpe = t.tpe
tree
case t @ LabelDef(name, params, rhs) =>
@@ -2111,7 +2109,7 @@ abstract class GenICode extends SubComponent {
* by a real JUMP instruction when all labels are resolved.
*/
abstract class PseudoJUMP(label: Label) extends Instruction {
- override def toString(): String = "PJUMP " + label.symbol.simpleName
+ override def toString(): String = "PJUMP " + label.symbol
override def consumed = 0
override def produced = 0