diff options
Diffstat (limited to 'src/library')
35 files changed, 62 insertions, 83 deletions
diff --git a/src/library/scala/Application.scala b/src/library/scala/Application.scala index 8d5327e8be..2437a5ffaa 100644 --- a/src/library/scala/Application.scala +++ b/src/library/scala/Application.scala @@ -36,7 +36,7 @@ package scala; * @version 1.0, 10/09/03 */ -mixin class Application { +trait Application { /** The time when execution of this program started. */ diff --git a/src/library/scala/BufferedIterator.scala b/src/library/scala/BufferedIterator.scala index 0675f22167..7a5d26d281 100644 --- a/src/library/scala/BufferedIterator.scala +++ b/src/library/scala/BufferedIterator.scala @@ -12,13 +12,13 @@ package scala; -/** Buffered iterators are iterators which allow to inspect the next +/** Buffered iterators are iterators which llow to inspect the next * element without discarding it. * * @author Martin Odersky * @version 1.0, 16/07/2003 */ -mixin class BufferedIterator[+A] extends Iterator[A] { +trait BufferedIterator[+A] extends Iterator[A] { /** Checks what the next available element is. * diff --git a/src/library/scala/CaseClass.scala b/src/library/scala/CaseClass.scala index 91b290956e..d50220f737 100644 --- a/src/library/scala/CaseClass.scala +++ b/src/library/scala/CaseClass.scala @@ -16,7 +16,7 @@ package scala; * * @author Burak Emir */ -mixin class CaseClass extends AnyRef { +trait CaseClass extends AnyRef { /** for a case class A(x_0,...,x_(k-1)), returns x_i for 0 <= i < k, ** null otherwise diff --git a/src/library/scala/CountedIterator.scala b/src/library/scala/CountedIterator.scala index bce9fd45fe..cf45174e17 100644 --- a/src/library/scala/CountedIterator.scala +++ b/src/library/scala/CountedIterator.scala @@ -18,7 +18,7 @@ package scala; * @author Martin Odersky * @version 1.0, 16/07/2003 */ -mixin class CountedIterator[+A] extends Iterator[A] { +trait CountedIterator[+A] extends Iterator[A] { /** counts the elements in this iterator; counts start at 0 */ diff --git a/src/library/scala/Function0.scala b/src/library/scala/Function0.scala index 7309ed403c..e7d2da57f4 100644 --- a/src/library/scala/Function0.scala +++ b/src/library/scala/Function0.scala @@ -15,7 +15,7 @@ package scala; /** * Function with no parameters */ -mixin class Function0[+R] extends AnyRef { +trait Function0[+R] extends AnyRef { def apply(): R; override def toString() = "<function>"; } diff --git a/src/library/scala/Function1.scala b/src/library/scala/Function1.scala index a5e19bb2fa..f928596332 100644 --- a/src/library/scala/Function1.scala +++ b/src/library/scala/Function1.scala @@ -15,7 +15,7 @@ package scala; /** * Function with 1 parameter */ -mixin class Function1[-T0, +R] extends AnyRef { +trait Function1[-T0, +R] extends AnyRef { def apply(v0: T0): R; override def toString() = "<function>"; } diff --git a/src/library/scala/Function2.scala b/src/library/scala/Function2.scala index e58173d6b3..bea1a9a951 100644 --- a/src/library/scala/Function2.scala +++ b/src/library/scala/Function2.scala @@ -15,7 +15,7 @@ package scala; /** * Function with 2 parameters */ -mixin class Function2[-T0, -T1, +R] extends AnyRef { +trait Function2[-T0, -T1, +R] extends AnyRef { def apply(v0: T0, v1: T1): R; override def toString() = "<function>"; } diff --git a/src/library/scala/Function3.scala b/src/library/scala/Function3.scala index 09d8633f7f..d161362d03 100644 --- a/src/library/scala/Function3.scala +++ b/src/library/scala/Function3.scala @@ -15,7 +15,7 @@ package scala; /** * Function with 3 parameters */ -mixin class Function3[-T0, -T1, -T2, +R] extends AnyRef { +trait Function3[-T0, -T1, -T2, +R] extends AnyRef { def apply(v0: T0, v1: T1, v2: T2): R; override def toString() = "<function>"; } diff --git a/src/library/scala/Function4.scala b/src/library/scala/Function4.scala index 3bae61ead6..7ddbed0031 100644 --- a/src/library/scala/Function4.scala +++ b/src/library/scala/Function4.scala @@ -15,7 +15,7 @@ package scala; /** * Function with 4 parameters */ -mixin class Function4[-T0, -T1, -T2, -T3, +R] extends AnyRef { +trait Function4[-T0, -T1, -T2, -T3, +R] extends AnyRef { def apply(v0: T0, v1: T1, v2: T2, v3: T3): R; override def toString() = "<function>"; } diff --git a/src/library/scala/Function5.scala b/src/library/scala/Function5.scala index 7bebfa5d5b..74fe7d1ca1 100644 --- a/src/library/scala/Function5.scala +++ b/src/library/scala/Function5.scala @@ -15,7 +15,7 @@ package scala; /** * Function with 5 parameters */ -mixin class Function5[-T0, -T1, -T2, -T3, -T4, +R] extends AnyRef { +trait Function5[-T0, -T1, -T2, -T3, -T4, +R] extends AnyRef { def apply(v0: T0, v1: T1, v2: T2, v3: T3, v4: T4): R; override def toString() = "<function>"; } diff --git a/src/library/scala/Function6.scala b/src/library/scala/Function6.scala index d9709a0e46..a46f17bb61 100644 --- a/src/library/scala/Function6.scala +++ b/src/library/scala/Function6.scala @@ -15,7 +15,7 @@ package scala; /** * Function with 6 parameters */ -mixin class Function6[-T0, -T1, -T2, -T3, -T4, -T5, +R] extends AnyRef { +trait Function6[-T0, -T1, -T2, -T3, -T4, -T5, +R] extends AnyRef { def apply(v0: T0, v1: T1, v2: T2, v3: T3, v4: T4, v5: T5): R; override def toString() = "<function>"; } diff --git a/src/library/scala/Function7.scala b/src/library/scala/Function7.scala index 0398c349ac..95bdb39275 100644 --- a/src/library/scala/Function7.scala +++ b/src/library/scala/Function7.scala @@ -15,7 +15,7 @@ package scala; /** * Function with 7 parameters */ -mixin class Function7[-T0, -T1, -T2, -T3, -T4, -T5, -T6, +R] extends AnyRef { +trait Function7[-T0, -T1, -T2, -T3, -T4, -T5, -T6, +R] extends AnyRef { def apply(v0: T0, v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6): R; override def toString() = "<function>"; } diff --git a/src/library/scala/Function8.scala b/src/library/scala/Function8.scala index 0630402a3e..e0b87f00e2 100644 --- a/src/library/scala/Function8.scala +++ b/src/library/scala/Function8.scala @@ -15,7 +15,7 @@ package scala; /** * Function with 8 parameters */ -mixin class Function8[-T0, -T1, -T2, -T3, -T4, -T5, -T6, -T7, +R] extends AnyRef { +trait Function8[-T0, -T1, -T2, -T3, -T4, -T5, -T6, -T7, +R] extends AnyRef { def apply(v0: T0, v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7): R; override def toString() = "<function>"; } diff --git a/src/library/scala/Function9.scala b/src/library/scala/Function9.scala index 8e82ded993..87761c6f59 100644 --- a/src/library/scala/Function9.scala +++ b/src/library/scala/Function9.scala @@ -15,7 +15,7 @@ package scala; /** * Function with 9 parameters */ -mixin class Function9[-T0, -T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, +R] extends AnyRef { +trait Function9[-T0, -T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, +R] extends AnyRef { def apply(v0: T0, v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8): R; override def toString() = "<function>"; } diff --git a/src/library/scala/Iterable.scala b/src/library/scala/Iterable.scala index 4700649a63..581b39201a 100644 --- a/src/library/scala/Iterable.scala +++ b/src/library/scala/Iterable.scala @@ -65,7 +65,7 @@ object Iterable { * @author Matthias Zenger * @version 1.1, 04/02/2004 */ -mixin class Iterable[+A] { +trait Iterable[+A] { /** Creates a new iterator over all elements contained in this * object. diff --git a/src/library/scala/IterableProxy.scala b/src/library/scala/IterableProxy.scala index ed45c58f5c..0b8ddc88df 100644 --- a/src/library/scala/IterableProxy.scala +++ b/src/library/scala/IterableProxy.scala @@ -18,7 +18,7 @@ package scala; * @author Matthias Zenger * @version 1.0, 26/04/2004 */ -mixin class IterableProxy[+A] extends Iterable[A] with Proxy { +trait IterableProxy[+A] extends Iterable[A] with Proxy { def self: Iterable[A]; diff --git a/src/library/scala/Iterator.scala b/src/library/scala/Iterator.scala index ded761dcfc..ac394b2ce9 100644 --- a/src/library/scala/Iterator.scala +++ b/src/library/scala/Iterator.scala @@ -173,7 +173,7 @@ object Iterator { * @author Matthias Zenger * @version 1.2, 15/03/2004 */ -mixin class Iterator[+A] { +trait Iterator[+A] { /** Does this iterator provide another element? */ diff --git a/src/library/scala/List.scala b/src/library/scala/List.scala index 3050fa9634..c9f5789310 100644 --- a/src/library/scala/List.scala +++ b/src/library/scala/List.scala @@ -1057,10 +1057,10 @@ sealed abstract class List[+a] extends Seq[a] { * @version 1.0, 15/07/2003 */ [SerialVersionUID(0 - 8256821097970055419L)] -case object Nil extends List[All] { +case object Nil extends List[Bottom] { def isEmpty = true; def head: All = error("head of empty list"); - def tail: List[All] = error("tail of empty list"); + def tail: List[Bottom] = error("tail of empty list"); } /** A non empty list characterized by a head and a tail. diff --git a/src/library/scala/MatchError.scala b/src/library/scala/MatchError.scala index 8607334e41..37fe5a00e9 100644 --- a/src/library/scala/MatchError.scala +++ b/src/library/scala/MatchError.scala @@ -11,6 +11,7 @@ package scala; +import Predef._ /** This class implements errors which are thrown whenever an * object doesn't match any pattern of a pattern matching @@ -23,7 +24,7 @@ package scala; object MatchError { // todo: change pattern matcher so that dummy type parameter T can be removed. - def fail[T](source: String, line: Int): All = throw new MatchError(source, line); + def fail[T](source: String, line: Int): Bottom = throw new MatchError(source, line); def report(source: String, line: Int, obj: Any) = try { diff --git a/src/library/scala/None.scala b/src/library/scala/None.scala deleted file mode 100644 index 00e9cdaf2f..0000000000 --- a/src/library/scala/None.scala +++ /dev/null @@ -1,20 +0,0 @@ -/* __ *\ -** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2002-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** -** /____/\___/_/ |_/____/_/ | | ** -** |/ ** -\* */ - -// $Id$ - - -package scala; - - -/** This case object represents non-existent values. - * - * @author Martin Odersky - * @version 1.0, 16/07/2003 - */ -case object None extends Option[All]; diff --git a/src/library/scala/Option.scala b/src/library/scala/Option.scala index 0bd03599cf..ff93da86b0 100644 --- a/src/library/scala/Option.scala +++ b/src/library/scala/Option.scala @@ -11,6 +11,7 @@ package scala; +import Predef._ /** This class represents optional values. Instances of <code>Option</code> * are either instances of case class <code>Some</code> or it is case @@ -20,7 +21,7 @@ package scala; * @author Matthias Zenger * @version 1.0, 16/07/2003 */ -abstract class Option[+A] extends Iterable[A] { +sealed abstract class Option[+A] extends Iterable[A] { def isEmpty: Boolean = this match { case None => true @@ -68,3 +69,18 @@ abstract class Option[+A] extends Iterable[A] { } } + +/** Class <code>Some[A]</code> represents existing values of type + * <code>A</code>. + * + * @author Martin Odersky + * @version 1.0, 16/07/2003 + */ +final case class Some[+A](x: A) extends Option[A]; + +/** This case object represents non-existent values. + * + * @author Martin Odersky + * @version 1.0, 16/07/2003 + */ +case object None extends Option[Bottom]; diff --git a/src/library/scala/Ordered.scala b/src/library/scala/Ordered.scala index 2c14369575..eca26f290b 100644 --- a/src/library/scala/Ordered.scala +++ b/src/library/scala/Ordered.scala @@ -17,7 +17,7 @@ package scala; * @author Martin Odersky * @version 1.0, 23/04/2004 */ -mixin class Ordered[+a] { +trait Ordered[+a] { /** Result of comparing `this' with operand `that'. * returns `x' where diff --git a/src/library/scala/PartialFunction.scala b/src/library/scala/PartialFunction.scala index ed5d64ca1c..8af05728f1 100644 --- a/src/library/scala/PartialFunction.scala +++ b/src/library/scala/PartialFunction.scala @@ -20,7 +20,7 @@ package scala; * @author Martin Odersky * @version 1.0, 16/07/2003 */ -mixin class PartialFunction[-A, +B] extends AnyRef with (A => B) { +trait PartialFunction[-A, +B] extends AnyRef with (A => B) { /** Checks if a value is contained in the functions domain. * diff --git a/src/library/scala/PartiallyOrdered.scala b/src/library/scala/PartiallyOrdered.scala index ab8c5ae997..45aa1fc58b 100644 --- a/src/library/scala/PartiallyOrdered.scala +++ b/src/library/scala/PartiallyOrdered.scala @@ -17,7 +17,7 @@ package scala; * @author Martin Odersky * @version 1.0, 23/04/2004 */ -mixin class PartiallyOrdered[+a] { +trait PartiallyOrdered[+a] { /** Result of comparing `this' with operand `that'. * Returns `None' if operands are not comparable. diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala index 37acc7a764..1d082d1db3 100644 --- a/src/library/scala/Predef.scala +++ b/src/library/scala/Predef.scala @@ -20,6 +20,9 @@ object Predef { // aliases ------------------------------------------------------- + type Bottom = All + type Null = AllRef + type byte = scala.Byte; type short = scala.Short; type char = scala.Char; @@ -149,11 +152,11 @@ object Predef { // errors and asserts ------------------------------------------------- - def error(message: String): All = throw new Error(message); + def error(message: String): Bottom = throw new Error(message); - def exit: All = exit(0); + def exit: Bottom = exit(0); - def exit(status: Int): All = { + def exit(status: Int): Bottom = { java.lang.System.exit(status); throw new Throwable() } diff --git a/src/library/scala/Proxy.scala b/src/library/scala/Proxy.scala index 4ccde24a23..64e2a333f8 100644 --- a/src/library/scala/Proxy.scala +++ b/src/library/scala/Proxy.scala @@ -20,7 +20,7 @@ package scala; * @author Matthias Zenger * @version 1.0, 26/04/2004 */ -mixin class Proxy { +trait Proxy { def self: Any; override def hashCode(): Int = self.hashCode(); override def equals(y: Any): Boolean = self.equals(y); diff --git a/src/library/scala/ScalaObject.scala b/src/library/scala/ScalaObject.scala index 5b328704ef..7d213e33b3 100644 --- a/src/library/scala/ScalaObject.scala +++ b/src/library/scala/ScalaObject.scala @@ -12,7 +12,7 @@ package scala -mixin class ScalaObject extends AnyRef { +trait ScalaObject extends AnyRef { /** This method is needed for optimizing pattern matching expressions * which match on constructors of case classes. diff --git a/src/library/scala/SeqProxy.scala b/src/library/scala/SeqProxy.scala index 5c3aa26179..0828349deb 100644 --- a/src/library/scala/SeqProxy.scala +++ b/src/library/scala/SeqProxy.scala @@ -19,7 +19,7 @@ package scala; * @author Matthias Zenger * @version 1.0, 16/07/2003 */ -mixin class SeqProxy[+A] extends Seq[A] with IterableProxy[A] { +trait SeqProxy[+A] extends Seq[A] with IterableProxy[A] { def self: Seq[A]; diff --git a/src/library/scala/Some.scala b/src/library/scala/Some.scala deleted file mode 100644 index e8235f26e8..0000000000 --- a/src/library/scala/Some.scala +++ /dev/null @@ -1,21 +0,0 @@ -/* __ *\ -** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2002-2006, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** -** /____/\___/_/ |_/____/_/ | | ** -** |/ ** -\* */ - -// $Id$ - - -package scala; - - -/** Class <code>Option[A]</code> represents existing values of type - * <code>A</code>. - * - * @author Martin Odersky - * @version 1.0, 16/07/2003 - */ -final case class Some[+A](x: A) extends Option[A]; diff --git a/src/library/scala/Stream.scala b/src/library/scala/Stream.scala index cfdc49f07b..d86af7392d 100644 --- a/src/library/scala/Stream.scala +++ b/src/library/scala/Stream.scala @@ -21,10 +21,10 @@ package scala; */ object Stream { - val empty: Stream[All] = new Stream[All] { + val empty: Stream[Bottom] = new Stream[Bottom] { def isEmpty = true; - def head: All = error("head of empty stream"); - def tail: Stream[All] = error("tail of empty stream"); + def head: Bottom = error("head of empty stream"); + def tail: Stream[Bottom] = error("tail of empty stream"); def printElems(buf: StringBuffer, prefix: String): StringBuffer = buf; } diff --git a/src/library/scala/collection/mutable/DoubleLinkedList.scala b/src/library/scala/collection/mutable/DoubleLinkedList.scala index 610dc3f6e5..3f5b276aee 100644 --- a/src/library/scala/collection/mutable/DoubleLinkedList.scala +++ b/src/library/scala/collection/mutable/DoubleLinkedList.scala @@ -20,7 +20,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -abstract class DoubleLinkedList[A, This >: AllRef <: DoubleLinkedList[A, This]] +abstract class DoubleLinkedList[A, This >: Null <: DoubleLinkedList[A, This]] requires This extends SingleLinkedList[A, This] { diff --git a/src/library/scala/collection/mutable/SingleLinkedList.scala b/src/library/scala/collection/mutable/SingleLinkedList.scala index 32b4690d4d..00346e83db 100644 --- a/src/library/scala/collection/mutable/SingleLinkedList.scala +++ b/src/library/scala/collection/mutable/SingleLinkedList.scala @@ -20,7 +20,7 @@ package scala.collection.mutable; * @author Matthias Zenger * @version 1.0, 08/07/2003 */ -abstract class SingleLinkedList[A, This >: AllRef <: SingleLinkedList[A, This]] +abstract class SingleLinkedList[A, This >: Null <: SingleLinkedList[A, This]] requires This extends AnyRef with Seq[A] { diff --git a/src/library/scala/concurrent/MailBox.scala b/src/library/scala/concurrent/MailBox.scala index 049259a988..44418d448d 100644 --- a/src/library/scala/concurrent/MailBox.scala +++ b/src/library/scala/concurrent/MailBox.scala @@ -139,7 +139,7 @@ mixin class ListQueueCreator { /** Efficient queue module creator based on linked lists. */ mixin class LinkedListQueueCreator { import scala.collection.mutable.LinkedList; - def queueCreate[a >: AllRef <: AnyRef]: QueueModule[a] = new QueueModule[a] { + def queueCreate[a >: Null <: 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/dbc/datatype/CharacterString.scala b/src/library/scala/dbc/datatype/CharacterString.scala index dae029d600..1f250475b3 100644 --- a/src/library/scala/dbc/datatype/CharacterString.scala +++ b/src/library/scala/dbc/datatype/CharacterString.scala @@ -15,10 +15,10 @@ package scala.dbc.datatype; /** A type category for all SQL types that store strings of characters. */ abstract class CharacterString extends String { - type NativeType = java.lang.String; - val nativeTypeId = DataType.STRING; + type NativeType = java.lang.String; + val nativeTypeId = DataType.STRING; - /** The name of the character set in which the string is encoded. */ - def encoding: Option[java.lang.String] = None; + /** The name of the character set in which the string is encoded. */ + def encoding: Option[java.lang.String] = None; } diff --git a/src/library/scala/runtime/ScalaRunTime.scala b/src/library/scala/runtime/ScalaRunTime.scala index 83fa174f4e..9612f9823d 100644 --- a/src/library/scala/runtime/ScalaRunTime.scala +++ b/src/library/scala/runtime/ScalaRunTime.scala @@ -90,7 +90,7 @@ object ScalaRunTime { false } - //def checkDefined[T >: AllRef](x: T): T = + //def checkDefined[T >: Null](x: T): T = // if (x == null) throw new UndefinedException else x def Seq[a](xs: a*): Seq[a] = null; // interpreted specially by new backend. |