summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2010-05-21 16:04:18 +0000
committerMartin Odersky <odersky@gmail.com>2010-05-21 16:04:18 +0000
commit90c59eb70a53e7ee0a8120ae53b4eeb711c44642 (patch)
tree15570f009cebf54c15713dedf69e0a87fd58a891
parent1a66cb21931f53ab46d1ef21136c30dbfd6977d6 (diff)
downloadscala-90c59eb70a53e7ee0a8120ae53b4eeb711c44642.tar.gz
scala-90c59eb70a53e7ee0a8120ae53b4eeb711c44642.tar.bz2
scala-90c59eb70a53e7ee0a8120ae53b4eeb711c44642.zip
Added +=: prepend to MutableList.
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala4
-rw-r--r--src/library/scala/collection/mutable/MutableList.scala7
2 files changed, 9 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index aad80c1d8c..705b835e89 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -3476,14 +3476,14 @@ trait Typers { self: Analyzer =>
//if (name.toString == "Elem") println("typedSelect "+qual+":"+qual.tpe+" "+sym+"/"+tree1+":"+tree1.tpe)
val (tree2, pre2) = makeAccessible(tree1, sym, qual.tpe, qual)
val result = stabilize(tree2, pre2, mode, pt)
- def isPotentialNullDeference() = {
+ def isPotentialNullDereference() = {
phase.id <= currentRun.typerPhase.id &&
!sym.isConstructor &&
!(qual.tpe <:< NotNullClass.tpe) && !qual.tpe.isNotNull &&
!(List(Any_isInstanceOf, Any_asInstanceOf) contains result.symbol) // null.is/as is not a dereference
}
// unit is null here sometimes; how are we to know when unit might be null? (See bug #2467.)
- if (settings.Xchecknull.value && isPotentialNullDeference && unit != null)
+ if (settings.Xchecknull.value && isPotentialNullDereference && unit != null)
unit.warning(tree.pos, "potential null pointer dereference: "+tree)
result
diff --git a/src/library/scala/collection/mutable/MutableList.scala b/src/library/scala/collection/mutable/MutableList.scala
index 81f33866ac..65c973c9ec 100644
--- a/src/library/scala/collection/mutable/MutableList.scala
+++ b/src/library/scala/collection/mutable/MutableList.scala
@@ -55,6 +55,13 @@ class MutableList[A] extends LinearSeq[A]
tl
}
+ /** Prepends a single element to this list. This operation takes constant
+ * time.
+ * @param elem the element to prepend.
+ * @return this $coll.
+ */
+ def +=: (elem: A): this.type = { prependElem(elem); this }
+
/** Returns the length of this list.
*/
override def length: Int = len