summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-05-01 14:51:14 +0000
committerMartin Odersky <odersky@gmail.com>2007-05-01 14:51:14 +0000
commit2043c0ab2196216fc1021d6d92e270184a2c8f45 (patch)
tree8ab5885a761192b25b8f459507e517993ad1d7f6 /src
parent1cc06bb6976e2d211b6219cfa7cdfbaab193791e (diff)
downloadscala-2043c0ab2196216fc1021d6d92e270184a2c8f45.tar.gz
scala-2043c0ab2196216fc1021d6d92e270184a2c8f45.tar.bz2
scala-2043c0ab2196216fc1021d6d92e270184a2c8f45.zip
fixed bug 1074
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Definitions.scala1
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Types.scala5
-rw-r--r--src/library/scala/Collection.scala10
-rw-r--r--src/library/scala/collection/immutable/Set.scala2
-rw-r--r--src/library/scala/collection/mutable/FlatHashTable.scala2
5 files changed, 11 insertions, 9 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
index 67404caf12..8f51b294dc 100644
--- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
@@ -91,6 +91,7 @@ trait Definitions {
var ListModule: Symbol = _
def List_apply = getMember(ListModule, nme.apply)
var ArrayClass: Symbol = _
+ def Array_apply = getMember(ArrayClass, nme.apply)
var ArrayModule: Symbol = _
var SerializableClass: Symbol = _
var PredefModule: Symbol = _
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala
index a1015eed4a..1ed48c2eb9 100644
--- a/src/compiler/scala/tools/nsc/symtab/Types.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Types.scala
@@ -1203,10 +1203,9 @@ A type's symbol should never be inspected directly.
if (sym.isAliasType) {
if (sym.info.typeParams.length == args.length) // beta-reduce
transform(sym.info.resultType).normalize // cycles have been checked in typeRef
- else { // eta-expand
- assert(isHigherKinded)
+ else if (isHigherKinded)
PolyType(typeParams, transform(sym.info.resultType).normalize)
- }
+ else this
} else if (isHigherKinded) {
PolyType(typeParams, typeRef(pre, sym, higherKindedArgs)) // @M TODO: transform?
} else super.normalize // @M TODO: transform?
diff --git a/src/library/scala/Collection.scala b/src/library/scala/Collection.scala
index f3c09d9865..f187e88d23 100644
--- a/src/library/scala/Collection.scala
+++ b/src/library/scala/Collection.scala
@@ -38,10 +38,12 @@ trait Collection[+A] extends Iterable[A] {
/** Defines the prefix of this object's <code>toString</code> representation.
*/
protected def stringPrefix : String = {
- val string = this.getClass.getName
- val idx = string.lastIndexOf('.' : Int)
- if (idx != -1) string.substring(idx + 1)
- else string
+ var string = this.getClass.getName
+ val idx1 = string.lastIndexOf('.' : Int)
+ if (idx1 != -1) string = string.substring(idx1 + 1)
+ val idx2 = string.indexOf('$')
+ if (idx2 != -1) string = string.substring(0, idx2)
+ string
}
}
diff --git a/src/library/scala/collection/immutable/Set.scala b/src/library/scala/collection/immutable/Set.scala
index 8068615191..a759ea4bcf 100644
--- a/src/library/scala/collection/immutable/Set.scala
+++ b/src/library/scala/collection/immutable/Set.scala
@@ -178,6 +178,6 @@ trait Set[A] extends AnyRef with collection.Set[A] {
* @param p The predicate used to filter the set
*/
override def filter(p: A => Boolean): Set[A] =
- foldLeft(this)((set, elem) => if (p(elem)) set else set - elem)
+ (this /: toList)((set, elem) => if (p(elem)) set else set - elem)
}
diff --git a/src/library/scala/collection/mutable/FlatHashTable.scala b/src/library/scala/collection/mutable/FlatHashTable.scala
index d968e97c8b..4cf1e8f5aa 100644
--- a/src/library/scala/collection/mutable/FlatHashTable.scala
+++ b/src/library/scala/collection/mutable/FlatHashTable.scala
@@ -71,7 +71,7 @@ trait FlatHashTable[A] {
}
def removeEntry(elem: A) {
- checkConsistent()
+ if (tableDebug) checkConsistent()
def precedes(i: int, j: int) = {
val d = table.length >> 1
if (i <= j) j - i < d