summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2011-01-08 20:57:45 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2011-01-08 20:57:45 +0000
commit18b563879c0cac2727e417762ba2efdee4acfcfb (patch)
treed00f17a6f7891ef71524b7f6b00f3d6cbd364551 /src
parent8752d5888450f1e188203821fe3748216e1e902f (diff)
downloadscala-18b563879c0cac2727e417762ba2efdee4acfcfb.tar.gz
scala-18b563879c0cac2727e417762ba2efdee4acfcfb.tar.bz2
scala-18b563879c0cac2727e417762ba2efdee4acfcfb.zip
Reverting fix for #4047 until I figure out why ...
Reverting fix for #4047 until I figure out why it is failing on chara and not on my machine. No review.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/transform/Erasure.scala13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/Erasure.scala b/src/compiler/scala/tools/nsc/transform/Erasure.scala
index 1a97c1f6c9..1df0b5bf3b 100644
--- a/src/compiler/scala/tools/nsc/transform/Erasure.scala
+++ b/src/compiler/scala/tools/nsc/transform/Erasure.scala
@@ -449,10 +449,7 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer with ast.
case _ =>
typedPos(tree.pos)(tree.tpe.typeSymbol match {
case UnitClass =>
- // Although lazy vals are pure expressions,
- // we should still call them in bridge methods
- if (treeInfo.isPureExpr(tree) && (tree.symbol == null || !tree.symbol.isLazy))
- REF(BoxedUnit_UNIT)
+ if (treeInfo isPureExpr tree) REF(BoxedUnit_UNIT)
else BLOCK(tree, REF(BoxedUnit_UNIT))
case x =>
assert(x != ArrayClass)
@@ -821,15 +818,15 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer with ast.
while (opc.hasNext) {
val member = opc.overriding
val other = opc.overridden
- //Console.println("bridge? " + member + ":" + member.tpe + member.locationString + " to " + other + ":" + other.tpe + other.locationString)//DEBUG
+ //Console.println("bridge? " + member + ":" + member.tpe + member.locationString + " to " + other + ":" + other.tpe + other.locationString);//DEBUG
if (atPhase(currentRun.explicitouterPhase)(!member.isDeferred)) {
- val otpe = erasure(other.tpe)
+ val otpe = erasure(other.tpe);
val bridgeNeeded = atPhase(phase.next) (
!(other.tpe =:= member.tpe) &&
!(deconstMap(other.tpe) =:= deconstMap(member.tpe)) &&
{ var e = bridgesScope.lookupEntry(member.name)
while ((e ne null) && !((e.sym.tpe =:= otpe) && (bridgeTarget(e.sym) == member)))
- e = bridgesScope.lookupNextEntry(e)
+ e = bridgesScope.lookupNextEntry(e);
(e eq null)
}
);
@@ -863,7 +860,7 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer with ast.
log("generating bridge from " + other + "(" + Flags.flagsToString(bridge.flags) + ")" + ":" + otpe + other.locationString + " to " + member + ":" + erasure(member.tpe) + member.locationString + " =\n " + bridgeDef);
bridgeDef
}
- } :: bridges
+ } :: bridges;
}
}
opc.next