summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2005-08-04 22:01:46 +0000
committerMartin Odersky <odersky@gmail.com>2005-08-04 22:01:46 +0000
commit56b6b545ddc4ec454b7513d37f2e7ff56cd2997c (patch)
treef3badbbd94407aaff4729113649c1d26531fafe3
parent2a5f62338c30ba6d06aa10c8fb809ce92462f96c (diff)
downloadscala-56b6b545ddc4ec454b7513d37f2e7ff56cd2997c.tar.gz
scala-56b6b545ddc4ec454b7513d37f2e7ff56cd2997c.tar.bz2
scala-56b6b545ddc4ec454b7513d37f2e7ff56cd2997c.zip
*** empty log message ***
-rw-r--r--sources/scala/Iterable.scala1
-rwxr-xr-xsources/scala/tools/nsc/transform/AddInterfaces.scala2
-rwxr-xr-xsources/scala/tools/nsc/transform/Erasure.scala1
-rwxr-xr-xsources/scala/tools/nsc/transform/ExplicitOuter.scala2
4 files changed, 4 insertions, 2 deletions
diff --git a/sources/scala/Iterable.scala b/sources/scala/Iterable.scala
index 4c71390670..035da41067 100644
--- a/sources/scala/Iterable.scala
+++ b/sources/scala/Iterable.scala
@@ -9,6 +9,7 @@
package scala;
+import Predef._;
object Iterable {
def view[A <% Ordered[A]](x: Iterable[A]): Ordered[Iterable[A]] = new Ordered[Iterable[A]] {
diff --git a/sources/scala/tools/nsc/transform/AddInterfaces.scala b/sources/scala/tools/nsc/transform/AddInterfaces.scala
index 61c7c307c0..8161e69782 100755
--- a/sources/scala/tools/nsc/transform/AddInterfaces.scala
+++ b/sources/scala/tools/nsc/transform/AddInterfaces.scala
@@ -114,7 +114,7 @@ abstract class AddInterfaces extends InfoTransform {
else {
assert(!parents.head.symbol.isTrait);
if (clazz hasFlag INTERFACE) erasedTypeRef(ObjectClass) :: parents.tail
- else if (isImplClass(clazz)) parents
+ else if (isImplClass(clazz) || clazz == ArrayClass) parents
else traitToImplClass(parents)
}
val decls1 = addImplClasses(
diff --git a/sources/scala/tools/nsc/transform/Erasure.scala b/sources/scala/tools/nsc/transform/Erasure.scala
index 5f64349469..d9462c2118 100755
--- a/sources/scala/tools/nsc/transform/Erasure.scala
+++ b/sources/scala/tools/nsc/transform/Erasure.scala
@@ -423,6 +423,7 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer {
*/
private val preTransformer = new Transformer {
override def transform(tree: Tree): Tree = {
+ if (tree.symbol == ArrayClass) return tree;
val tree1 = tree match {
case ClassDef(mods, name, tparams, tpt, impl) =>
copy.ClassDef(tree, mods, name, List(), tpt, impl)
diff --git a/sources/scala/tools/nsc/transform/ExplicitOuter.scala b/sources/scala/tools/nsc/transform/ExplicitOuter.scala
index f1ac3392e8..bea9fd63ce 100755
--- a/sources/scala/tools/nsc/transform/ExplicitOuter.scala
+++ b/sources/scala/tools/nsc/transform/ExplicitOuter.scala
@@ -249,7 +249,7 @@ abstract class ExplicitOuter extends InfoTransform {
List(vparamss.head ::: List(ValDef(outerParam, EmptyTree)))
}
val rhs1 =
- if (sym.isPrimaryConstructor || sym.isMixinConstructor)
+ if ((sym.isPrimaryConstructor || sym.isMixinConstructor) && sym.owner != ArrayClass)
addMixinConstructorCalls(rhs, sym.owner); // (3)
else rhs;
copy.DefDef(tree, mods, name, tparams, vparamss1, tpt, rhs1);