summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-10-05 16:48:30 +0000
committerMartin Odersky <odersky@gmail.com>2006-10-05 16:48:30 +0000
commit9c0102e5689bebb56e3ec1308123875102c68d25 (patch)
tree378c35b19c729343955c5dd327a8a4195828d6f5 /src
parentac49199ed22c95d4d133034e77d96d6c436f079d (diff)
downloadscala-9c0102e5689bebb56e3ec1308123875102c68d25.tar.gz
scala-9c0102e5689bebb56e3ec1308123875102c68d25.tar.bz2
scala-9c0102e5689bebb56e3ec1308123875102c68d25.zip
Fixed bug 759
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/Settings.scala2
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreePrinters.scala4
-rw-r--r--src/compiler/scala/tools/nsc/transform/Erasure.scala3
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) {