summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-02-06 18:18:06 +0000
committerMartin Odersky <odersky@gmail.com>2006-02-06 18:18:06 +0000
commit9668bd2204b7e5b1410bf066f869611618277825 (patch)
treea3e0a7c1de1883ca8311684714a0433dbf2353e1 /src/library
parentb8f52d46645947c523567bc2ecf63168e6ec0cbc (diff)
downloadscala-9668bd2204b7e5b1410bf066f869611618277825.tar.gz
scala-9668bd2204b7e5b1410bf066f869611618277825.tar.bz2
scala-9668bd2204b7e5b1410bf066f869611618277825.zip
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/NonNull.scala13
-rw-r--r--src/library/scala/UndefinedException.scala12
-rw-r--r--src/library/scala/collection/mutable/DoubleLinkedList.scala2
-rw-r--r--src/library/scala/collection/mutable/SingleLinkedList.scala4
-rw-r--r--src/library/scala/concurrent/MailBox.scala2
-rw-r--r--src/library/scala/runtime/ScalaRunTime.scala3
6 files changed, 32 insertions, 4 deletions
diff --git a/src/library/scala/NonNull.scala b/src/library/scala/NonNull.scala
new file mode 100644
index 0000000000..02a037ccf0
--- /dev/null
+++ b/src/library/scala/NonNull.scala
@@ -0,0 +1,13 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2005, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id: ScalaObject.scala 5390 2005-12-19 13:49:03Z dubochet $
+
+package scala;
+
+trait NonNull;
diff --git a/src/library/scala/UndefinedException.scala b/src/library/scala/UndefinedException.scala
new file mode 100644
index 0000000000..d88cb0a5ca
--- /dev/null
+++ b/src/library/scala/UndefinedException.scala
@@ -0,0 +1,12 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+** **
+** $Id: MatchError.scala 5390 2005-12-19 13:49:03Z dubochet $
+\* */
+package scala;
+
+final class UndefinedException extends RuntimeException;
diff --git a/src/library/scala/collection/mutable/DoubleLinkedList.scala b/src/library/scala/collection/mutable/DoubleLinkedList.scala
index 4b79ba534c..0fefcf6b04 100644
--- a/src/library/scala/collection/mutable/DoubleLinkedList.scala
+++ b/src/library/scala/collection/mutable/DoubleLinkedList.scala
@@ -19,7 +19,7 @@ package scala.collection.mutable;
* @version 1.0, 08/07/2003
*/
[serializable]
-abstract class DoubleLinkedList[A, This <: DoubleLinkedList[A, This]] requires This
+abstract class DoubleLinkedList[A, This >: AllRef <: DoubleLinkedList[A, This]] requires This
extends SingleLinkedList[A, This] {
var prev: This = _;
diff --git a/src/library/scala/collection/mutable/SingleLinkedList.scala b/src/library/scala/collection/mutable/SingleLinkedList.scala
index 9ec97f39ff..52c2fdcd35 100644
--- a/src/library/scala/collection/mutable/SingleLinkedList.scala
+++ b/src/library/scala/collection/mutable/SingleLinkedList.scala
@@ -19,13 +19,13 @@ package scala.collection.mutable;
* @version 1.0, 08/07/2003
*/
[serializable]
-abstract class SingleLinkedList[A, This <: SingleLinkedList[A, This]]
+abstract class SingleLinkedList[A, This >: AllRef <: SingleLinkedList[A, This]]
requires This
extends AnyRef with Seq[A] {
var elem: A = _;
- var next: This = _;
+ var next: This = null;
def length: Int = 1 + (if (next == null) 0 else next.length);
diff --git a/src/library/scala/concurrent/MailBox.scala b/src/library/scala/concurrent/MailBox.scala
index 427d424b28..4463071f2e 100644
--- a/src/library/scala/concurrent/MailBox.scala
+++ b/src/library/scala/concurrent/MailBox.scala
@@ -137,7 +137,7 @@ trait ListQueueCreator {
/** Efficient queue module creator based on linked lists. */
trait LinkedListQueueCreator {
import scala.collection.mutable.LinkedList;
- def queueCreate[a <: AnyRef]: QueueModule[a] = new QueueModule[a] {
+ def queueCreate[a >: AllRef <: AnyRef]: QueueModule[a] = new QueueModule[a] {
type t = Pair[LinkedList[a], LinkedList[a]]; // fst = the list, snd = last elem
def make: t = {
val l = new LinkedList[a](null, null);
diff --git a/src/library/scala/runtime/ScalaRunTime.scala b/src/library/scala/runtime/ScalaRunTime.scala
index 827e4cc223..77d46fc745 100644
--- a/src/library/scala/runtime/ScalaRunTime.scala
+++ b/src/library/scala/runtime/ScalaRunTime.scala
@@ -88,6 +88,9 @@ object ScalaRunTime {
false
}
+ def checkDefined[T >: AllRef](x: T): T =
+ if (x == null) throw new UndefinedException else x
+
def Seq[a](xs: a*): Seq[a] = null; // interpreted specially by new backend.
def booleanValue(x: BoxedBoolean): Boolean = if (x eq null) false else x.booleanValue();