diff options
author | Martin Odersky <odersky@gmail.com> | 2006-10-05 16:48:30 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-10-05 16:48:30 +0000 |
commit | 9c0102e5689bebb56e3ec1308123875102c68d25 (patch) | |
tree | 378c35b19c729343955c5dd327a8a4195828d6f5 | |
parent | ac49199ed22c95d4d133034e77d96d6c436f079d (diff) | |
download | scala-9c0102e5689bebb56e3ec1308123875102c68d25.tar.gz scala-9c0102e5689bebb56e3ec1308123875102c68d25.tar.bz2 scala-9c0102e5689bebb56e3ec1308123875102c68d25.zip |
Fixed bug 759
-rw-r--r-- | src/compiler/scala/tools/nsc/Settings.scala | 2 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/TreePrinters.scala | 4 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/Erasure.scala | 3 |
3 files changed, 7 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/Settings.scala b/src/compiler/scala/tools/nsc/Settings.scala index cc80a4b3ab..acf0d59b85 100644 --- a/src/compiler/scala/tools/nsc/Settings.scala +++ b/src/compiler/scala/tools/nsc/Settings.scala @@ -123,7 +123,7 @@ class Settings(error: String => unit) { val Xgenerics = BooleanSetting("-Xgenerics", "Use generic Java types") val Xprintpos = BooleanSetting("-Xprintpos", "Print tree positions (as offsets)") val Xscript = BooleanSetting("-Xscript", "compile script file") - val Xexperimental = BooleanSetting("-Xexpermental", "enable experimental extensions") + val Xexperimental = BooleanSetting("-Xexperimental", "enable experimental extensions") /** A list of all settings */ def allSettings: List[Setting] = allsettings.reverse diff --git a/src/compiler/scala/tools/nsc/ast/TreePrinters.scala b/src/compiler/scala/tools/nsc/ast/TreePrinters.scala index e8e722d4d1..ec41149264 100644 --- a/src/compiler/scala/tools/nsc/ast/TreePrinters.scala +++ b/src/compiler/scala/tools/nsc/ast/TreePrinters.scala @@ -354,7 +354,9 @@ abstract class TreePrinters { def printAll(): unit = { print("[[syntax trees at end of " + phase + "]]") - for (val unit <- global.currentRun.units) print(unit) + atPhase(phase.next) { + for (val unit <- global.currentRun.units) print(unit) + } } } diff --git a/src/compiler/scala/tools/nsc/transform/Erasure.scala b/src/compiler/scala/tools/nsc/transform/Erasure.scala index 9e96025e5f..bd6708750c 100644 --- a/src/compiler/scala/tools/nsc/transform/Erasure.scala +++ b/src/compiler/scala/tools/nsc/transform/Erasure.scala @@ -367,6 +367,9 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer { qual1 = box(qual1); else if (!isValueClass(qual1.tpe.symbol) && isUnboxedValueMember(tree.symbol)) qual1 = unbox(qual1, tree.symbol.owner.tpe) + else if (tree.symbol.owner == ArrayClass && qual1.tpe.symbol == ObjectClass) + qual1 = cast(qual1, BoxedArrayClass.tpe) + if (isUnboxedClass(tree.symbol.owner) && !isUnboxedClass(qual1.tpe.symbol)) tree.symbol = NoSymbol else if (qual1.tpe.isInstanceOf[MethodType] && qual1.tpe.paramTypes.isEmpty) { |