Removing the code which has been deprecated since 2.8.0. Contributed by

Simon Ochsenreither, although deleting code is such fun one hesitates to
call it a contribution. Still, we will. Closes SI-4860, no review.

git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25511 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
This commit is contained in:
extempore 2011-08-15 20:48:25 +00:00
parent be61acff42
commit 34fa938a38
151 changed files with 368 additions and 2544 deletions

View File

@ -26,14 +26,6 @@ abstract class Future[+T] extends Responder[T] with Function0[T] {
@volatile
private[actors] var fvalue: Option[Any] = None
private[actors] def fvalueTyped = fvalue.get.asInstanceOf[T]
@deprecated("this member is going to be removed in a future release", "2.8.0")
def ch: InputChannel[Any] = inputChannel
@deprecated("this member is going to be removed in a future release", "2.8.0")
protected def value: Option[Any] = fvalue
@deprecated("this member is going to be removed in a future release", "2.8.0")
protected def value_=(x: Option[Any]) { fvalue = x }
/** Tests whether the future's result is available.
*

View File

@ -37,25 +37,4 @@ object Scheduler extends DelegatingScheduler {
Debug.info(this+": starting new "+sched+" ["+sched.getClass+"]")
sched
}
/* Only `ForkJoinScheduler` implements this method.
*/
@deprecated("snapshot will be removed", "2.8.0")
def snapshot() {
if (sched.isInstanceOf[ForkJoinScheduler]) {
sched.asInstanceOf[ForkJoinScheduler].snapshot()
} else
sys.error("scheduler does not implement snapshot")
}
/* Only `ForkJoinScheduler` implements this method.
*/
@deprecated("restart will be removed", "2.8.0")
def restart() {
if (sched.isInstanceOf[ForkJoinScheduler]) {
sched.asInstanceOf[ForkJoinScheduler].restart()
} else
sys.error("scheduler does not implement restart")
}
}

View File

@ -19,29 +19,4 @@ package object actors {
// type of Reactors tracked by termination detector
private[actors] type TrackedReactor = Reactor[A] forSome { type A >: Null }
@deprecated("use scheduler.ForkJoinScheduler instead", "2.8.0")
type FJTaskScheduler2 = scala.actors.scheduler.ForkJoinScheduler
@deprecated("use scheduler.ForkJoinScheduler instead", "2.8.0")
type TickedScheduler = scala.actors.scheduler.ForkJoinScheduler
@deprecated("use scheduler.ForkJoinScheduler instead", "2.8.0")
type WorkerThreadScheduler = scala.actors.scheduler.ForkJoinScheduler
@deprecated("this class is going to be removed in a future release", "2.8.0")
type WorkerThread = java.lang.Thread
@deprecated("use scheduler.SingleThreadedScheduler instead", "2.8.0")
type SingleThreadedScheduler = scala.actors.scheduler.SingleThreadedScheduler
// This used to do a blind cast and throw a CCE after the package
// object was loaded. I have replaced with a variation that should work
// in whatever cases that was working but fail less exceptionally for
// those not intentionally using it.
@deprecated("this value is going to be removed in a future release", "2.8.0")
val ActorGC = scala.actors.Scheduler.impl match {
case x: scala.actors.scheduler.ActorGC => x
case _ => null
}
}

View File

@ -81,10 +81,6 @@ object RemoteActor {
kern
}
@deprecated("this member is going to be removed in a future release", "2.8.0")
def createKernelOnPort(port: Int): NetKernel =
createNetKernelOnPort(port)
/**
* Registers <code>a</code> under <code>name</code> on this
* node.
@ -120,10 +116,6 @@ object RemoteActor {
private[remote] def someNetKernel: NetKernel =
kernels.valuesIterator.next
@deprecated("this member is going to be removed in a future release", "2.8.0")
def someKernel: NetKernel =
someNetKernel
}

View File

@ -238,7 +238,7 @@ class Function(val i: Int) extends Group("Function") with Arity {
curryComment +
" def curried: %s => R = {\n %s\n }\n".format(
targs mkString " => ", body
) + """ @deprecated("Use `curried` instead", "2.8.0")""" + "\n def curry = curried\n"
)
}
override def moreMethods = curryMethod + tupleMethod

View File

@ -122,9 +122,6 @@ object ByteCodecs {
dst
}
@deprecated("use 2-argument version instead", "2.8.0")
def decode7to8(src: Array[Byte], srclen: Int, dstlen: Int) { decode7to8(src, srclen) }
def decode7to8(src: Array[Byte], srclen: Int): Int = {
var i = 0
var j = 0
@ -193,9 +190,6 @@ object ByteCodecs {
def encode(xs: Array[Byte]): Array[Byte] = avoidZero(encode8to7(xs))
@deprecated("use 1-argument version instead", "2.8.0")
def decode(xs: Array[Byte], dstlen: Int) { decode(xs) }
/**
* Destructively decodes array xs and returns the length of the decoded array.
*

View File

@ -230,7 +230,7 @@ object Array extends FallbackArrayBuilding {
*
* Note that this means that `elem` is computed a total of n times:
* {{{
* scala> Array.fill(3){ java.lang.Math.random }
* scala> Array.fill(3){ math.random }
* res3: Array[Double] = Array(0.365461167592537, 1.550395944913685E-4, 0.7907242137333306)
* }}}
*
@ -423,65 +423,6 @@ object Array extends FallbackArrayBuilding {
if (x == null) None else Some(x.toIndexedSeq)
// !!! the null check should to be necessary, but without it 2241 fails. Seems to be a bug
// in pattern matcher. @PP: I noted in #4364 I think the behavior is correct.
/** Creates an array containing several copies of an element.
*
* @param n the length of the resulting array
* @param elem the element composing the resulting array
* @return an array composed of n elements all equal to elem
*/
@deprecated("use `Array.fill` instead", "2.8.0")
def make[T: ClassManifest](n: Int, elem: T): Array[T] = {
val a = new Array[T](n)
var i = 0
while (i < n) {
a(i) = elem
i += 1
}
a
}
/** Creates an array containing the values of a given function `f`
* over given range `[0..n)`
*/
@deprecated("use `Array.tabulate` instead", "2.8.0")
def fromFunction[T: ClassManifest](f: Int => T)(n: Int): Array[T] = {
val a = new Array[T](n)
var i = 0
while (i < n) {
a(i) = f(i)
i += 1
}
a
}
/** Creates an array containing the values of a given function `f`
* over given range `[0..n1, 0..n2)`
*/
@deprecated("use `Array.tabulate` instead", "2.8.0")
def fromFunction[T: ClassManifest](f: (Int, Int) => T)(n1: Int, n2: Int): Array[Array[T]] =
fromFunction(i => fromFunction(f(i, _))(n2))(n1)
/** Creates an array containing the values of a given function `f`
* over given range `[0..n1, 0..n2, 0..n3)`
*/
@deprecated("use `Array.tabulate` instead", "2.8.0")
def fromFunction[T: ClassManifest](f: (Int, Int, Int) => T)(n1: Int, n2: Int, n3: Int): Array[Array[Array[T]]] =
fromFunction(i => fromFunction(f(i, _, _))(n2, n3))(n1)
/** Creates an array containing the values of a given function `f`
* over given range `[0..n1, 0..n2, 0..n3, 0..n4)`
*/
@deprecated("use `Array.tabulate` instead", "2.8.0")
def fromFunction[T: ClassManifest](f: (Int, Int, Int, Int) => T)(n1: Int, n2: Int, n3: Int, n4: Int): Array[Array[Array[Array[T]]]] =
fromFunction(i => fromFunction(f(i, _, _, _))(n2, n3, n4))(n1)
/** Creates an array containing the values of a given function `f`
* over given range `[0..n1, 0..n2, 0..n3, 0..n4, 0..n5)`
*/
@deprecated("use `Array.tabulate` instead", "2.8.0")
def fromFunction[T: ClassManifest](f: (Int, Int, Int, Int, Int) => T)(n1: Int, n2: Int, n3: Int, n4: Int, n5: Int): Array[Array[Array[Array[Array[T]]]]] =
fromFunction(i => fromFunction(f(i, _, _, _, _))(n2, n3, n4, n5))(n1)
}
/** Arrays are mutable, indexed collections of values. `Array[T]` is Scala's representation
@ -529,38 +470,6 @@ object Array extends FallbackArrayBuilding {
*/
final class Array[T](_length: Int) extends java.io.Serializable with java.lang.Cloneable {
/** Multidimensional array creation */
@deprecated("use `Array.ofDim` instead", "2.8.0")
def this(dim1: Int, dim2: Int) = this(dim1)
/** Multidimensional array creation */
@deprecated("use `Array.ofDim` instead", "2.8.0")
def this(dim1: Int, dim2: Int, dim3: Int) = this(dim1)
/** Multidimensional array creation */
@deprecated("use `Array.ofDim` instead", "2.8.0")
def this(dim1: Int, dim2: Int, dim3: Int, dim4: Int) = this(dim1)
/** Multidimensional array creation */
@deprecated("use `Array.ofDim` instead", "2.8.0")
def this(dim1: Int, dim2: Int, dim3: Int, dim4: Int, dim5: Int) = this(dim1)
/** Multidimensional array creation */
@deprecated("use `Array.ofDim` instead", "2.8.0")
def this(dim1: Int, dim2: Int, dim3: Int, dim4: Int, dim5: Int, dim6: Int) = this(dim1)
/** Multidimensional array creation */
@deprecated("use `Array.ofDim` instead", "2.8.0")
def this(dim1: Int, dim2: Int, dim3: Int, dim4: Int, dim5: Int, dim6: Int, dim7: Int) = this(dim1)
/** Multidimensional array creation */
@deprecated("use `Array.ofDim` instead", "2.8.0")
def this(dim1: Int, dim2: Int, dim3: Int, dim4: Int, dim5: Int, dim6: Int, dim7: Int, dim8: Int) = this(dim1)
/** Multidimensional array creation */
@deprecated("use `Array.ofDim` instead", "2.8.0")
def this(dim1: Int, dim2: Int, dim3: Int, dim4: Int, dim5: Int, dim6: Int, dim7: Int, dim8: Int, dim9: Int) = this(dim1)
/** The length of the array */
def length: Int = throw new Error()

View File

@ -17,17 +17,93 @@ package scala
* which provides useful non-primitive operations.
*/
final class Boolean extends AnyVal {
/**
* Negates a Boolean expression.
*
* - `!a` results in `false` if and only if `a` evaluates to `true` and
* - `!a` results in `true` if and only if `a` evaluates to `false`.
*
* @return the negated expression
*/
def unary_! : Boolean = sys.error("stub")
/**
* Compares two Boolean expressions and returns `true` if they evaluate to the same value.
*
* `a == b` returns `true` if and only if
* - `a` and `b` are `true` or
* - `a` and `b` are `false`.
*/
def ==(x: Boolean): Boolean = sys.error("stub")
/**
* Compares two Boolean expressions and returns `true` if they evaluate to a different value.
*
* `a != b` returns `true` if and only if
* - `a` is `true` and `b` is `false` or
* - `a` is `false` and `b` is `true`.
*/
def !=(x: Boolean): Boolean = sys.error("stub")
/**
* Compares two Boolean expressions and returns `true` if one or both of them evaluate to true.
*
* `a || b` returns `true` if and only if
* - `a` is `true` or
* - `b` is `true` or
* - `a` and `b` are `true`.
*
* @note This method uses 'short-circuit' evaluation and
* behaves as if it was declared as `def ||(x: => Boolean): Boolean`.
* If `a` evaluates to `true`, `true` is returned without evaluating `b`.
*/
def ||(x: Boolean): Boolean = sys.error("stub")
/**
* Compares two Boolean expressions and returns `true` if both of them evaluate to true.
*
* `a && b` returns `true` if and only if
* - `a` and `b` are `true`.
*
* @note This method uses 'short-circuit' evaluation and
* behaves as if it was declared as `def &&(x: => Boolean): Boolean`.
* If `a` evaluates to `false`, `false` is returned without evaluating `b`.
*/
def &&(x: Boolean): Boolean = sys.error("stub")
// Compiler won't build with these seemingly more accurate signatures
// def ||(x: => Boolean): Boolean = sys.error("stub")
// def &&(x: => Boolean): Boolean = sys.error("stub")
/**
* Compares two Boolean expressions and returns `true` if one or both of them evaluate to true.
*
* `a | b` returns `true` if and only if
* - `a` is `true` or
* - `b` is `true` or
* - `a` and `b` are `true`.
*
* @note This method evaluates both `a` and `b`, even if the result is already determined after evaluating `a`.
*/
def |(x: Boolean): Boolean = sys.error("stub")
/**
* Compares two Boolean expressions and returns `true` if both of them evaluate to true.
*
* `a & b` returns `true` if and only if
* - `a` and `b` are `true`.
*
* @note This method evaluates both `a` and `b`, even if the result is already determined after evaluating `a`.
*/
def &(x: Boolean): Boolean = sys.error("stub")
/**
* Compares two Boolean expressions and returns `true` if they evaluate to a different value.
*
* `a ^ b` returns `true` if and only if
* - `a` is `true` and `b` is `false` or
* - `a` is `false` and `b` is `true`.
*/
def ^(x: Boolean): Boolean = sys.error("stub")
def getClass(): Class[Boolean] = sys.error("stub")

View File

@ -1,21 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala
/** A `Cell` is a generic wrapper which completely
* hides the functionality of the wrapped object. The wrapped
* object is accessible via the `elem` accessor method.
*
* @author Martin Odersky
* @version 1.0, 08/08/2003
*/
@deprecated("use `scala.Option` or `scala.Some` instead", "2.9.0")
case class Cell[+T](elem: T)

View File

@ -1,24 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala
/** Counted iterators keep track of the number of elements seen so far
*
* @since 2.0
*/
@deprecated("use iterator.zipWithIndex instead", "2.8.0")
trait CountedIterator[+A] extends Iterator[A] {
/** counts the elements in this iterator; counts start at 0
*/
def count: Int
override def counted : this.type = this
}

View File

@ -310,24 +310,6 @@ object Either {
}
}
@deprecated("use `x.joinLeft'", "2.8.0")
def joinLeft[A, B](es: Either[Either[A, B], B]) =
es.left.flatMap(x => x)
@deprecated("use `x.joinRight'", "2.8.0")
def joinRight[A, B](es: Either[A, Either[A, B]]) =
es.right.flatMap(x => x)
/**
* Takes an `Either` to its contained value within `Left` or
* `Right`.
*/
@deprecated("use `x.merge'", "2.8.0")
def merge[T](e: Either[T, T]) = e match {
case Left(t) => t
case Right(t) => t
}
/** If the condition satisfies, return the given `A` in `Left`,
* otherwise, return the given `B` in `Right`.
*/

View File

@ -45,41 +45,6 @@ object Function {
override def lift: T => Option[R] = f
}
/** Currying for functions of arity 2. This transforms a function
* of arity 2 into a a unary function returning another unary function.
*
* @param f ...
* @return ...
*/
@deprecated("Use `f.curried` instead", "2.8.0")
def curried[a1, a2, b](f: (a1, a2) => b): a1 => a2 => b = {
x1 => x2 => f(x1, x2)
}
/** Currying for functions of arity 3.
*
* @param f ...
* @return ...
*/
@deprecated("Use `f.curried` instead", "2.8.0")
def curried[a1, a2, a3, b](f: (a1, a2, a3) => b): a1 => a2 => a3 => b = {
x1 => x2 => x3 => f(x1, x2, x3)
}
/** Currying for functions of arity 4.
*/
@deprecated("Use `f.curried` instead", "2.8.0")
def curried[a1, a2, a3, a4, b](f: (a1, a2, a3, a4) => b): a1 => a2 => a3 => a4 => b = {
x1 => x2 => x3 => x4 => f(x1, x2, x3, x4)
}
/** Currying for functions of arity 5.
*/
@deprecated("Use `f.curried` instead", "2.8.0")
def curried[a1, a2, a3, a4, a5, b](f: (a1, a2, a3, a4, a5) => b): a1 => a2 => a3 => a4 => a5 => b = {
x1 => x2 => x3 => x4 => x5 => f(x1, x2, x3, x4, x5)
}
/** Uncurrying for functions of arity 2. This transforms a unary function
* returning another unary function into a function of arity 2.
*/

View File

@ -6,7 +6,7 @@
** |/ **
\* */
// GENERATED CODE: DO NOT EDIT.
// genprod generated these sources at: Thu Apr 14 13:08:25 PDT 2011
// genprod generated these sources at: Sun Jul 31 00:37:30 CEST 2011
package scala

View File

@ -26,8 +26,6 @@ trait Function10[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, +R] extends
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 10 arguments,
* it accepts a single [[scala.Tuple10]] argument.

View File

@ -26,8 +26,6 @@ trait Function11[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, +R] ex
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 11 arguments,
* it accepts a single [[scala.Tuple11]] argument.

View File

@ -26,8 +26,6 @@ trait Function12[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 12 arguments,
* it accepts a single [[scala.Tuple12]] argument.

View File

@ -26,8 +26,6 @@ trait Function13[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 13 arguments,
* it accepts a single [[scala.Tuple13]] argument.

View File

@ -26,8 +26,6 @@ trait Function14[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => T14 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13, x14: T14) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 14 arguments,
* it accepts a single [[scala.Tuple14]] argument.

View File

@ -26,8 +26,6 @@ trait Function15[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => T14 => T15 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13, x14: T14, x15: T15) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 15 arguments,
* it accepts a single [[scala.Tuple15]] argument.

View File

@ -26,8 +26,6 @@ trait Function16[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => T14 => T15 => T16 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13, x14: T14, x15: T15, x16: T16) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 16 arguments,
* it accepts a single [[scala.Tuple16]] argument.

View File

@ -26,8 +26,6 @@ trait Function17[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => T14 => T15 => T16 => T17 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13, x14: T14, x15: T15, x16: T16, x17: T17) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 17 arguments,
* it accepts a single [[scala.Tuple17]] argument.

View File

@ -26,8 +26,6 @@ trait Function18[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => T14 => T15 => T16 => T17 => T18 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13, x14: T14, x15: T15, x16: T16, x17: T17, x18: T18) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 18 arguments,
* it accepts a single [[scala.Tuple18]] argument.

View File

@ -26,8 +26,6 @@ trait Function19[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => T14 => T15 => T16 => T17 => T18 => T19 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13, x14: T14, x15: T15, x16: T16, x17: T17, x18: T18, x19: T19) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 19 arguments,
* it accepts a single [[scala.Tuple19]] argument.

View File

@ -39,8 +39,6 @@ trait Function2[@specialized(scala.Int, scala.Long, scala.Double) -T1, @speciali
def curried: T1 => T2 => R = {
(x1: T1) => (x2: T2) => apply(x1, x2)
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 2 arguments,
* it accepts a single [[scala.Tuple2]] argument.

View File

@ -26,8 +26,6 @@ trait Function20[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => T14 => T15 => T16 => T17 => T18 => T19 => T20 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13, x14: T14, x15: T15, x16: T16, x17: T17, x18: T18, x19: T19, x20: T20) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 20 arguments,
* it accepts a single [[scala.Tuple20]] argument.

View File

@ -26,8 +26,6 @@ trait Function21[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => T14 => T15 => T16 => T17 => T18 => T19 => T20 => T21 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13, x14: T14, x15: T15, x16: T16, x17: T17, x18: T18, x19: T19, x20: T20, x21: T21) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 21 arguments,
* it accepts a single [[scala.Tuple21]] argument.

View File

@ -26,8 +26,6 @@ trait Function22[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12,
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => T14 => T15 => T16 => T17 => T18 => T19 => T20 => T21 => T22 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13, x14: T14, x15: T15, x16: T16, x17: T17, x18: T18, x19: T19, x20: T20, x21: T21, x22: T22) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 22 arguments,
* it accepts a single [[scala.Tuple22]] argument.

View File

@ -26,8 +26,6 @@ trait Function3[-T1, -T2, -T3, +R] extends AnyRef { self =>
def curried: T1 => T2 => T3 => R = {
(x1: T1) => (x2: T2) => (x3: T3) => apply(x1, x2, x3)
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 3 arguments,
* it accepts a single [[scala.Tuple3]] argument.

View File

@ -26,8 +26,6 @@ trait Function4[-T1, -T2, -T3, -T4, +R] extends AnyRef { self =>
def curried: T1 => T2 => T3 => T4 => R = {
(x1: T1) => (x2: T2) => (x3: T3) => (x4: T4) => apply(x1, x2, x3, x4)
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 4 arguments,
* it accepts a single [[scala.Tuple4]] argument.

View File

@ -26,8 +26,6 @@ trait Function5[-T1, -T2, -T3, -T4, -T5, +R] extends AnyRef { self =>
def curried: T1 => T2 => T3 => T4 => T5 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5) => self.apply(x1, x2, x3, x4, x5)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 5 arguments,
* it accepts a single [[scala.Tuple5]] argument.

View File

@ -26,8 +26,6 @@ trait Function6[-T1, -T2, -T3, -T4, -T5, -T6, +R] extends AnyRef { self =>
def curried: T1 => T2 => T3 => T4 => T5 => T6 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6) => self.apply(x1, x2, x3, x4, x5, x6)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 6 arguments,
* it accepts a single [[scala.Tuple6]] argument.

View File

@ -26,8 +26,6 @@ trait Function7[-T1, -T2, -T3, -T4, -T5, -T6, -T7, +R] extends AnyRef { self =>
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7) => self.apply(x1, x2, x3, x4, x5, x6, x7)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 7 arguments,
* it accepts a single [[scala.Tuple7]] argument.

View File

@ -26,8 +26,6 @@ trait Function8[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, +R] extends AnyRef { sel
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 8 arguments,
* it accepts a single [[scala.Tuple8]] argument.

View File

@ -26,8 +26,6 @@ trait Function9[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, +R] extends AnyRef
def curried: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => R = {
(x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9) => self.apply(x1, x2, x3, x4, x5, x6, x7, x8, x9)).curried
}
@deprecated("Use 'curried' instead", "2.8.0")
def curry = curried
/** Creates a tupled version of this function: instead of 9 arguments,
* it accepts a single [[scala.Tuple9]] argument.

View File

@ -1,95 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2002-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala
/** The object `Math` contains methods for performing basic numeric
* operations such as the elementary exponential, logarithm, square root,
* and trigonometric functions.
*/
@deprecated("use the scala.math package object instead.\n(Example package object usage: scala.math.Pi )", "2.8.0")
object Math extends MathCommon {
@deprecated("Use `scala.Byte.MinValue` instead", "2.8.0")
val MIN_BYTE = java.lang.Byte.MIN_VALUE
@deprecated("Use `scala.Byte.MaxValue` instead", "2.8.0")
val MAX_BYTE = java.lang.Byte.MAX_VALUE
@deprecated("Use `scala.Short.MinValue` instead", "2.8.0")
val MIN_SHORT = java.lang.Short.MIN_VALUE
@deprecated("Use `scala.Short.MaxValue` instead", "2.8.0")
val MAX_SHORT = java.lang.Short.MAX_VALUE
@deprecated("Use `scala.Char.MinValue` instead", "2.8.0")
val MIN_CHAR = java.lang.Character.MIN_VALUE
@deprecated("Use `scala.Char.MaxValue` instead", "2.8.0")
val MAX_CHAR = java.lang.Character.MAX_VALUE
@deprecated("Use `scala.Int.MinValue` instead", "2.8.0")
val MIN_INT = java.lang.Integer.MIN_VALUE
@deprecated("Use `scala.Int.MaxValue` instead", "2.8.0")
val MAX_INT = java.lang.Integer.MAX_VALUE
@deprecated("Use `scala.Long.MinValue` instead", "2.8.0")
val MIN_LONG = java.lang.Long.MIN_VALUE
@deprecated("Use `scala.Long.MaxValue` instead", "2.8.0")
val MAX_LONG = java.lang.Long.MAX_VALUE
/** The smallest possible value for [[scala.Float]]. */
@deprecated("Use `scala.Float.MinValue` instead", "2.8.0")
val MIN_FLOAT = -java.lang.Float.MAX_VALUE
/** The smallest difference between two values of [[scala.Float]]. */
@deprecated("Use `scala.Float.MinPositiveValue` instead", "2.8.0")
val EPS_FLOAT = java.lang.Float.MIN_VALUE
/** The greatest possible value for [[scala.Float]]. */
@deprecated("Use `scala.Float.MaxValue` instead", "2.8.0")
val MAX_FLOAT = java.lang.Float.MAX_VALUE
/** A value of type [[scala.Float]] that represents no number. */
@deprecated("Use `scala.Float.NaN` instead", "2.8.0")
val NaN_FLOAT = java.lang.Float.NaN
/** Negative infinity of type [[scala.Float]]. */
@deprecated("Use `scala.Float.NegativeInfinity` instead", "2.8.0")
val NEG_INF_FLOAT = java.lang.Float.NEGATIVE_INFINITY
/** Positive infinity of type [[scala.Float]]. */
@deprecated("Use `scala.Float.PositiveInfinity` instead", "2.8.0")
val POS_INF_FLOAT = java.lang.Float.POSITIVE_INFINITY
/** The smallest possible value for [[scala.Double]]. */
@deprecated("Use `scala.Double.MinValue` instead", "2.8.0")
val MIN_DOUBLE = -java.lang.Double.MAX_VALUE
/** The smallest difference between two values of [[scala.Double]]. */
@deprecated("Use `scala.Double.MinPositiveValue` instead", "2.8.0")
val EPS_DOUBLE = java.lang.Double.MIN_VALUE
/** The greatest possible value for [[scala.Double]]. */
@deprecated("Use `scala.Double.MaxValue` instead", "2.8.0")
val MAX_DOUBLE = java.lang.Double.MAX_VALUE
/** A value of type [[scala.Double]] that represents no number. */
@deprecated("Use `scala.Double.NaN` instead", "2.8.0")
val NaN_DOUBLE = java.lang.Double.NaN
/** Negative infinity of type [[scala.Double]]. */
@deprecated("Use `scala.Double.NegativeInfinity` instead", "2.8.0")
val NEG_INF_DOUBLE = java.lang.Double.NEGATIVE_INFINITY
/** Positive infinity of type [[scala.Double]]. */
@deprecated("Use `scala.Double.PositiveInfinity` instead", "2.8.0")
val POS_INF_DOUBLE = java.lang.Double.POSITIVE_INFINITY
}

View File

@ -1,139 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2002-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala
/** Common code between the deprecated `scala.Math` object and
* the `scala.math` package object.
*/
private[scala] class MathCommon {
/** The `double` value that is closer than any other to `e`, the base of
* the natural logarithms.
*/
val E = java.lang.Math.E
/** The `double` value that is closer than any other to `pi`, the ratio of
* the circumference of a circle to its diameter.
*/
val Pi = java.lang.Math.PI
/** Returns a `double` value with a positive sign, greater than or equal
* to `0.0` and less than `1.0`.
*/
def random: Double = java.lang.Math.random()
def sin(x: Double): Double = java.lang.Math.sin(x)
def cos(x: Double): Double = java.lang.Math.cos(x)
def tan(x: Double): Double = java.lang.Math.tan(x)
def asin(x: Double): Double = java.lang.Math.asin(x)
def acos(x: Double): Double = java.lang.Math.acos(x)
def atan(x: Double): Double = java.lang.Math.atan(x)
/** Converts an angle measured in degrees to an approximately equivalent
* angle measured in radians.
*
* @param x an angle, in degrees
* @return the measurement of the angle `x` in radians.
*/
def toRadians(x: Double): Double = java.lang.Math.toRadians(x)
/** Converts an angle measured in radians to an approximately equivalent
* angle measured in degrees.
*
* @param x angle, in radians
* @return the measurement of the angle `x` in degrees.
*/
def toDegrees(x: Double): Double = java.lang.Math.toDegrees(x)
/** Returns Euler's number `e` raised to the power of a `double` value.
*
* @param x the exponent to raise `e` to.
* @return the value `e^a^`, where `e` is the base of the natural
* logarithms.
*/
def exp(x: Double): Double = java.lang.Math.exp(x)
def log(x: Double): Double = java.lang.Math.log(x)
def sqrt(x: Double): Double = java.lang.Math.sqrt(x)
def IEEEremainder(x: Double, y: Double): Double = java.lang.Math.IEEEremainder(x, y)
def ceil(x: Double): Double = java.lang.Math.ceil(x)
def floor(x: Double): Double = java.lang.Math.floor(x)
/** Returns the `double` value that is closest in value to the
* argument and is equal to a mathematical integer.
*
* @param x a `double` value
* @return the closest floating-point value to a that is equal to a
* mathematical integer.
*/
def rint(x: Double): Double = java.lang.Math.rint(x)
/** Converts rectangular coordinates `(x, y)` to polar `(r, theta)`.
*
* @param x the ordinate coordinate
* @param y the abscissa coordinate
* @return the ''theta'' component of the point `(r, theta)` in polar
* coordinates that corresponds to the point `(x, y)` in
* Cartesian coordinates.
*/
def atan2(y: Double, x: Double): Double = java.lang.Math.atan2(y, x)
/** Returns the value of the first argument raised to the power of the
* second argument.
*
* @param x the base.
* @param y the exponent.
* @return the value `x^y^`.
*/
def pow(x: Double, y: Double): Double = java.lang.Math.pow(x, y)
/** Returns the closest `long` to the argument.
*
* @param x a floating-point value to be rounded to a `long`.
* @return the value of the argument rounded to the nearest`long` value.
*/
def round(x: Float): Int = java.lang.Math.round(x)
def round(x: Double): Long = java.lang.Math.round(x)
def abs(x: Int): Int = java.lang.Math.abs(x)
def abs(x: Long): Long = java.lang.Math.abs(x)
def abs(x: Float): Float = java.lang.Math.abs(x)
def abs(x: Double): Double = java.lang.Math.abs(x)
def max(x: Int, y: Int): Int = java.lang.Math.max(x, y)
def max(x: Long, y: Long): Long = java.lang.Math.max(x, y)
def max(x: Float, y: Float): Float = java.lang.Math.max(x, y)
def max(x: Double, y: Double): Double = java.lang.Math.max(x, y)
def min(x: Int, y: Int): Int = java.lang.Math.min(x, y)
def min(x: Long, y: Long): Long = java.lang.Math.min(x, y)
def min(x: Float, y: Float): Float = java.lang.Math.min(x, y)
def min(x: Double, y: Double): Double = java.lang.Math.min(x, y)
def signum(x: Double): Double =
if (x == 0d) 0d
else if (x < 0) -1.0
else if (x > 0) 1.0
else x // NaN
def signum(x: Float): Float =
if (x == 0f) 0f
else if (x < 0) -1.0f
else if (x > 0) 1.0f
else x // NaN
def signum(x: Long): Long =
if (x == 0l) 0l
else if (x < 0) -1l
else 1l
def signum(x: Int): Int =
if (x == 0) 0
else if (x < 0) -1
else 1
}

View File

@ -1,17 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2002-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala
/**
* @since 2.0
*/
@deprecated("Use a custom Error class instead", "2.8.0")
final class NotDefinedError(msg: String) extends Error("not defined: " + msg)

View File

@ -42,9 +42,6 @@ trait Product extends Equals {
def next() = { val result = productElement(c); c += 1; result }
}
@deprecated("use productIterator instead", "2.8.0")
def productElements: Iterator[Any] = productIterator
/** A string used in the `toString` methods of derived classes.
* Implementations may override this method to prepend a string prefix
* to the result of `toString` methods.

View File

@ -13,11 +13,8 @@ package scala
/** This class implements errors which are thrown whenever a
* field is used before it has been initialized.
*
* Such runtime checks are not emitted by default. See the
* compiler documentation for knowing how to turn them on.
*
* Note: This check requires the initialization order
* first implemented in scala 2.8.
* Such runtime checks are not emitted by default.
* They can be enabled by the `-Xcheckinit` compiler option.
*
* @since 2.7
*/

View File

@ -48,15 +48,4 @@ object Iterable extends TraversableFactory[Iterable] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Iterable[A]] = ReusableCBF.asInstanceOf[GenericCanBuildFrom[A]]
def newBuilder[A]: Builder[A, Iterable[A]] = immutable.Iterable.newBuilder[A]
/** The minimum element of a non-empty sequence of ordered elements */
@deprecated("use <seq>.min instead, where <seq> is the sequence for which you want to compute the minimum", "2.8.0")
def min[A](seq: Iterable[A])(implicit ord: Ordering[A]): A = seq.min
/** The maximum element of a non-empty sequence of ordered elements */
@deprecated("use <seq>.max instead, where <seq> is the sequence for which you want to compute the maximum", "2.8.0")
def max[A](seq: Iterable[A])(implicit ord: Ordering[A]): A = seq.max
@deprecated("use View instead", "2.8.0")
type Projection[A] = IterableView[A, Coll]
}

View File

@ -298,23 +298,4 @@ self =>
}
override /*TraversableLike*/ def view(from: Int, until: Int) = view.slice(from, until)
@deprecated("use `iterator` instead", "2.8.0")
def elements = iterator
@deprecated("use `head` instead", "2.8.0")
def first: A = head
/** `None` if iterable is empty.
*/
@deprecated("use `headOption` instead", "2.8.0")
def firstOption: Option[A] = headOption
/**
* returns a projection that can be used to call non-strict `filter`,
* `map`, and `flatMap` methods that build projections
* of the collection.
*/
@deprecated("use `view` instead", "2.8.0")
def projection = view
}

View File

@ -149,86 +149,6 @@ object Iterator {
def hasNext = true
def next = elem
}
@deprecated("use `xs.iterator` or `Iterator(xs)` instead", "2.8.0")
def fromValues[a](xs: a*) = xs.iterator
/** @param xs the array of elements
* @see also: IndexedSeq.iterator and slice
*/
@deprecated("use `xs.iterator` instead", "2.8.0")
def fromArray[a](xs: Array[a]): Iterator[a] =
fromArray(xs, 0, xs.length)
/**
* @param xs the array of elements
* @param start the start index
* @param length the length
* @see also: IndexedSeq.iterator and slice
*/
@deprecated("use `xs.slice(start, start + length).iterator` instead", "2.8.0")
def fromArray[a](xs: Array[a], start: Int, length: Int): Iterator[a] =
xs.slice(start, start + length).iterator
/**
* @param n the product arity
* @return the iterator on `Product&lt;n&gt;`.
*/
@deprecated("use `product.productIterator instead`", "2.8.0")
def fromProduct(n: Product): Iterator[Any] = new Iterator[Any] {
private var c: Int = 0
private val cmax = n.productArity
def hasNext = c < cmax
def next() = { val a = n productElement c; c += 1; a }
}
/** Create an iterator with elements `e<sub>n+1</sub> = step(e<sub>n</sub>)` where `e<sub>0</sub> = start`
* and elements are in the range between `start` (inclusive) and `end` (exclusive).
*
* @param start the start value of the iterator
* @param end the end value of the iterator
* @param step the increment function of the iterator, must be monotonically increasing or decreasing
* @return the iterator with values in range `[start;end)`.
*/
@deprecated("use `Iterator.iterate(start, end - start)(step)` instead", "2.8.0")
def range(start: Int, end: Int, step: Int => Int) = new Iterator[Int] {
private val up = step(start) > start
private val down = step(start) < start
private var i = start
def hasNext: Boolean = (!up || i < end) && (!down || i > end)
def next(): Int =
if (hasNext) { val j = i; i = step(i); j }
else empty.next()
}
/** Create an iterator with elements `e<sub>n+1</sub> = step(e<sub>n</sub>)` where `e<sub>0</sub> = start`.
*
* @param start the start value of the iterator
* @param step the increment function of the iterator
* @return the iterator starting at value `start`.
*/
@deprecated("use `iterate(start)(step)` instead", "2.8.0")
def from(start: Int, step: Int => Int): Iterator[Int] = new Iterator[Int] {
private var i = start
override def hasNext: Boolean = true
def next(): Int = { val j = i; i = step(i); j }
}
/** Create an iterator that is the concatenation of all iterators returned by a given iterator of iterators.
*
* @param its The iterator which returns on each call to next
* a new iterator whose elements are to be concatenated to the result.
*/
@deprecated("use `its.flatten` instead", "2.8.0")
def flatten[T](its: Iterator[Iterator[T]]): Iterator[T] = new Iterator[T] {
private var cur = its.next
def hasNext: Boolean = {
while (!cur.hasNext && its.hasNext) cur = its.next
cur.hasNext
}
def next(): T =
(if (hasNext) cur else empty).next()
}
}
import Iterator.empty
@ -1030,52 +950,4 @@ trait Iterator[+A] extends TraversableOnce[A] {
* whether or not the iterator is empty.
*/
override def toString = (if (hasNext) "non-empty" else "empty")+" iterator"
/** Returns a new iterator that first yields the elements of this
* iterator followed by the elements provided by iterator `that`.
*/
@deprecated("use `++`", "2.3.2")
def append[B >: A](that: Iterator[B]) = self ++ that
/** Returns index of the first element satisfying a predicate, or -1. */
@deprecated("use `indexWhere` instead", "2.8.0")
def findIndexOf(p: A => Boolean): Int = indexWhere(p)
/** Returns a counted iterator from this iterator.
*/
@deprecated("use `zipWithIndex` in `Iterator`", "2.8.0")
def counted = new CountedIterator[A] {
private var cnt = 0
def count = cnt
def hasNext: Boolean = self.hasNext
def next(): A = { cnt += 1; self.next }
}
/** Fills the given array `xs` with the elements of
* this sequence starting at position `start`. Like `copyToArray`,
* but designed to accomodate IO stream operations.
*
* '''Note:''' the array must be large enough to hold `sz` elements.
* @param xs the array to fill.
* @param start the starting index.
* @param sz the maximum number of elements to be read.
*/
@deprecated("use `copyToArray` instead", "2.8.0")
def readInto[B >: A](xs: Array[B], start: Int, sz: Int) {
var i = start
while (hasNext && i - start < sz) {
xs(i) = next
i += 1
}
}
@deprecated("use `copyToArray` instead", "2.8.0")
def readInto[B >: A](xs: Array[B], start: Int) {
readInto(xs, start, xs.length - start)
}
@deprecated("use copyToArray instead", "2.8.0")
def readInto[B >: A](xs: Array[B]) {
readInto(xs, 0, xs.length)
}
}

View File

@ -73,9 +73,6 @@ object JavaConversions {
case _ => IteratorWrapper(i)
}
@deprecated("use asJavaIterator instead", "2.8.1")
def asIterator[A](i : Iterator[A]): ju.Iterator[A] = asJavaIterator[A](i)
/**
* Implicitly converts a Scala Iterator to a Java Enumeration.
* The returned Java Enumeration is backed by the provided Scala
@ -94,9 +91,6 @@ object JavaConversions {
case _ => IteratorWrapper(i)
}
@deprecated("use asJavaEnmeration instead", "2.8.1")
def asEnumeration[A](i : Iterator[A]): ju.Enumeration[A] = asJavaEnumeration[A](i)
/**
* Implicitly converts a Scala Iterable to a Java Iterable.
* The returned Java Iterable is backed by the provided Scala
@ -115,9 +109,6 @@ object JavaConversions {
case _ => IterableWrapper(i)
}
@deprecated("use asJavaIterable instead", "2.8.1")
def asIterable[A](i : Iterable[A]): jl.Iterable[A] = asJavaIterable[A](i)
/**
* Implicitly converts a Scala Iterable to an immutable Java
* Collection.
@ -133,9 +124,6 @@ object JavaConversions {
case JCollectionWrapper(wrapped) => wrapped
case _ => new IterableWrapper(i)
}
@deprecated("use asJavaCollection instead", "2.8.1")
def asCollection[A](i : Iterable[A]): ju.Collection[A] = asJavaCollection[A](i)
/**
* Implicitly converts a Scala mutable Buffer to a Java List.
@ -156,8 +144,6 @@ object JavaConversions {
}
@deprecated("use bufferAsJavaList instead", "2.9.0")
def asJavaList[A](b : mutable.Buffer[A]): ju.List[A] = bufferAsJavaList[A](b)
@deprecated("use bufferAsJavaList instead", "2.8.1")
def asList[A](b : mutable.Buffer[A]): ju.List[A] = bufferAsJavaList[A](b)
/**
* Implicitly converts a Scala mutable Seq to a Java List.
@ -178,8 +164,6 @@ object JavaConversions {
}
@deprecated("use mutableSeqAsJavaList instead", "2.9.0")
def asJavaList[A](b : mutable.Seq[A]): ju.List[A] = mutableSeqAsJavaList[A](b)
@deprecated("use mutableSeqAsJavaList instead", "2.8.1")
def asList[A](b : mutable.Seq[A]): ju.List[A] = mutableSeqAsJavaList[A](b)
/**
* Implicitly converts a Scala Seq to a Java List.
@ -201,8 +185,6 @@ object JavaConversions {
@deprecated("use seqAsJavaList instead", "2.9.0")
def asJavaList[A](b : Seq[A]): ju.List[A] = seqAsJavaList[A](b)
@deprecated("use seqAsJavaList instead", "2.8.1")
def asList[A](b : Seq[A]): ju.List[A] = seqAsJavaList[A](b)
/**
* Implicitly converts a Scala mutable Set to a Java Set.
@ -224,8 +206,6 @@ object JavaConversions {
@deprecated("use mutableSetAsJavaSet instead", "2.9.0")
def asJavaSet[A](s : mutable.Set[A]): ju.Set[A] = mutableSetAsJavaSet[A](s)
@deprecated("use mutableSetAsJavaSet instead", "2.8.1")
def asSet[A](s : mutable.Set[A]): ju.Set[A] = mutableSetAsJavaSet[A](s)
/**
* Implicitly converts a Scala Set to a Java Set.
@ -247,8 +227,6 @@ object JavaConversions {
@deprecated("use setAsJavaSet instead", "2.9.0")
def asJavaSet[A](s: Set[A]): ju.Set[A] = setAsJavaSet[A](s)
@deprecated("use setAsJavaSet instead", "2.8.1")
def asSet[A](s : Set[A]): ju.Set[A] = setAsJavaSet[A](s)
/**
* Implicitly converts a Scala mutable Map to a Java Map.
@ -271,8 +249,6 @@ object JavaConversions {
@deprecated("use mutableMapAsJavaMap instead", "2.9.0")
def asJavaMap[A, B](m : mutable.Map[A, B]): ju.Map[A, B] = mutableMapAsJavaMap[A, B](m)
@deprecated("use mutableMapAsJavaMap instead", "2.8.1")
def asMap[A, B](m : mutable.Map[A, B]): ju.Map[A, B] = mutableMapAsJavaMap[A, B](m)
/**
* Implicitly converts a Scala mutable `Map` to a Java `Dictionary`.
@ -294,9 +270,6 @@ object JavaConversions {
case _ => new DictionaryWrapper(m)
}
@deprecated("use asJavaDictionary instead", "2.8.1")
def asDictionary[A, B](m : mutable.Map[A, B]): ju.Dictionary[A, B] = asJavaDictionary[A, B](m)
/**
* Implicitly converts a Scala `Map` to a Java `Map`.
*
@ -319,8 +292,6 @@ object JavaConversions {
@deprecated("use mapAsJavaMap instead", "2.9.0")
def asJavaMap[A, B](m : Map[A, B]): ju.Map[A, B] = mapAsJavaMap[A, B](m)
@deprecated("use mapAsJavaMap instead", "2.8.1")
def asMap[A, B](m : Map[A, B]): ju.Map[A, B] = mapAsJavaMap[A, B](m)
/**
* Implicitly converts a Scala mutable `ConcurrentMap` to a Java
@ -342,9 +313,6 @@ object JavaConversions {
case _ => new ConcurrentMapWrapper(m)
}
@deprecated("use asJavaConcurrentMap instead", "2.8.1")
def asConcurrentMap[A, B](m: mutable.ConcurrentMap[A, B]): juc.ConcurrentMap[A, B] = asJavaConcurrentMap[A, B](m)
// Java => Scala
/**
@ -365,9 +333,6 @@ object JavaConversions {
case IteratorWrapper(wrapped) => wrapped
case _ => JIteratorWrapper(i)
}
@deprecated("use asScalaIterator instead", "2.8.1")
def asIterator[A](i : ju.Iterator[A]): Iterator[A] = asScalaIterator[A](i)
/**
* Implicitly converts a Java Enumeration to a Scala Iterator.
@ -387,9 +352,6 @@ object JavaConversions {
case _ => JEnumerationWrapper(i)
}
@deprecated("use enumerationAsScalaIterator instead", "2.8.1")
def asIterator[A](i : ju.Enumeration[A]): Iterator[A] = enumerationAsScalaIterator[A](i)
/**
* Implicitly converts a Java `Iterable` to a Scala `Iterable`.
*
@ -411,8 +373,6 @@ object JavaConversions {
@deprecated("use iterableAsScalaIterable instead", "2.9.0")
def asScalaIterable[A](i : jl.Iterable[A]): Iterable[A] = iterableAsScalaIterable[A](i)
@deprecated("use iterableAsScalaIterable instead", "2.8.1")
def asIterable[A](i : jl.Iterable[A]): Iterable[A] = iterableAsScalaIterable[A](i)
/**
* Implicitly converts a Java `Collection` to an Scala `Iterable`.
@ -430,8 +390,6 @@ object JavaConversions {
}
@deprecated("use collectionAsScalaIterable instead", "2.9.0")
def asScalaIterable[A](i : ju.Collection[A]): Iterable[A] = collectionAsScalaIterable[A](i)
@deprecated("use collectionAsScalaIterable instead", "2.8.1")
def asIterable[A](i : ju.Collection[A]): Iterable[A] = collectionAsScalaIterable[A](i)
/**
* Implicitly converts a Java `List` to a Scala mutable `Buffer`.
@ -452,9 +410,6 @@ object JavaConversions {
case _ =>new JListWrapper(l)
}
@deprecated("use asScalaBuffer instead", "2.8.1")
def asBuffer[A](l : ju.List[A]): mutable.Buffer[A] = asScalaBuffer[A](l)
/**
* Implicitly converts a Java Set to a Scala mutable Set.
* The returned Scala Set is backed by the provided Java
@ -472,9 +427,6 @@ object JavaConversions {
case MutableSetWrapper(wrapped) => wrapped
case _ =>new JSetWrapper(s)
}
@deprecated("use asScalaSet instead", "2.8.1")
def asSet[A](s : ju.Set[A]): mutable.Set[A] = asScalaSet[A](s)
/**
* Implicitly converts a Java `Map` to a Scala mutable `Map`.
@ -498,8 +450,6 @@ object JavaConversions {
@deprecated("use mapAsScalaMap instead", "2.9.0")
def asScalaMap[A, B](m : ju.Map[A, B]): mutable.Map[A, B] = mapAsScalaMap[A, B](m)
@deprecated("use mapAsScalaMap instead", "2.8.1")
def asMap[A, B](m : ju.Map[A, B]): mutable.Map[A, B] = mapAsScalaMap[A, B](m)
/**
* Implicitly converts a Java ConcurrentMap to a Scala mutable ConcurrentMap.
@ -518,9 +468,6 @@ object JavaConversions {
case cmw: ConcurrentMapWrapper[a, b] => cmw.underlying
case _ => new JConcurrentMapWrapper(m)
}
@deprecated("use asScalaConcurrentMap instead", "2.8.1")
def asConcurrentMap[A, B](m: juc.ConcurrentMap[A, B]): mutable.ConcurrentMap[A, B] = asScalaConcurrentMap[A, B](m)
/**
* Implicitly converts a Java `Dictionary` to a Scala mutable
@ -538,9 +485,6 @@ object JavaConversions {
case _ => new JDictionaryWrapper(p)
}
@deprecated("use dictionaryAsScalaMap instead", "2.8.1")
def asMap[A, B](p: ju.Dictionary[A, B]): mutable.Map[A, B] = dictionaryAsScalaMap[A, B](p)
/**
* Implicitly converts a Java `Properties` to a Scala `mutable Map[String, String]`.
*
@ -557,8 +501,6 @@ object JavaConversions {
@deprecated("use propertiesAsScalaMap instead", "2.9.0")
def asScalaMap(p: ju.Properties): mutable.Map[String, String] = propertiesAsScalaMap(p)
@deprecated("use propertiesAsScalaMap instead", "2.8.1")
def asMap(p: ju.Properties): mutable.Map[String, String] = propertiesAsScalaMap(p)
// Private implementations (shared by JavaConverters) ...

View File

@ -246,9 +246,6 @@ self =>
def get(key: A) = self.get(key).map(f)
}
@deprecated("use `mapValues` instead", "2.8.0")
def mapElements[C](f: B => C) = mapValues(f)
// The following 5 operations (updated, two times +, two times ++) should really be
// generic, returning This[B]. We need better covariance support to express that though.
// So right now we do the brute force approach of code duplication.

View File

@ -39,11 +39,5 @@ object Seq extends SeqFactory[Seq] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Seq[A]] = ReusableCBF.asInstanceOf[GenericCanBuildFrom[A]]
def newBuilder[A]: Builder[A, Seq[A]] = immutable.Seq.newBuilder[A]
@deprecated("use View instead", "2.8.0")
type Projection[A] = SeqView[A, Coll]
@deprecated("use Seq(value) instead", "2.8.0")
def singleton[A](value: A) = Seq(value)
}

View File

@ -118,11 +118,6 @@ trait SeqLike[+A, +Repr] extends IterableLike[A, Repr] with GenSeqLike[A, Repr]
-1
}
/** Returns index of the first element satisfying a predicate, or `-1`.
*/
@deprecated("Use indexWhere(p) instead.", "2.8.0")
def findIndexOf(p: A => Boolean): Int = indexWhere(p)
def lastIndexWhere(p: A => Boolean, end: Int): Int = {
var i = length - 1
val it = reverseIterator
@ -290,9 +285,6 @@ trait SeqLike[+A, +Repr] extends IterableLike[A, Repr] with GenSeqLike[A, Repr]
*/
def reverseIterator: Iterator[A] = toCollection(reverse).iterator
@deprecated("use `reverseIterator` instead", "2.8.0")
def reversedElements = reverseIterator
def startsWith[B](that: GenSeq[B], offset: Int): Boolean = {
val i = this.iterator drop offset
val j = that.iterator
@ -678,31 +670,6 @@ trait SeqLike[+A, +Repr] extends IterableLike[A, Repr] with GenSeqLike[A, Repr]
/* Need to override string, so that it's not the Function1's string that gets mixed in.
*/
override def toString = super[IterableLike].toString
/** Returns index of the last element satisfying a predicate, or -1.
*/
@deprecated("use `lastIndexWhere` instead", "2.8.0")
def findLastIndexOf(p: A => Boolean): Int = lastIndexWhere(p)
/** Tests whether every element of this $coll relates to the
* corresponding element of another sequence by satisfying a test predicate.
*
* @param that the other sequence
* @param p the test predicate, which relates elements from both sequences
* @tparam B the type of the elements of `that`
* @return `true` if both sequences have the same length and
* `p(x, y)` is `true` for all corresponding elements `x` of this $coll
* and `y` of `that`, otherwise `false`.
*/
@deprecated("use `corresponds` instead", "2.8.0")
def equalsWith[B](that: Seq[B])(f: (A,B) => Boolean): Boolean = corresponds(that)(f)
/**
* returns a projection that can be used to call non-strict `filter`,
* `map`, and `flatMap` methods that build projections of the collection.
*/
@deprecated("use `view` instead", "2.8.0")
override def projection = view
}
/** The companion object for trait `SeqLike`.

View File

@ -33,7 +33,6 @@ trait SeqProxyLike[+A, +Repr <: SeqLike[A, Repr] with Seq[A]] extends SeqLike[A,
override def prefixLength(p: A => Boolean) = self.prefixLength(p)
override def indexWhere(p: A => Boolean): Int = self.indexWhere(p)
override def indexWhere(p: A => Boolean, from: Int): Int = self.indexWhere(p, from)
override def findIndexOf(p: A => Boolean): Int = self.indexWhere(p)
override def indexOf[B >: A](elem: B): Int = self.indexOf(elem)
override def indexOf[B >: A](elem: B, from: Int): Int = self.indexOf(elem, from)
override def lastIndexOf[B >: A](elem: B): Int = self.lastIndexOf(elem)

View File

@ -144,15 +144,6 @@ self =>
*/
override def isEmpty: Boolean = size == 0
/** This method is an alias for `intersect`.
* It computes an intersection with set `that`.
* It removes all the elements that are not present in `that`.
*
* @param that the set to intersect with
*/
@deprecated("use & instead", "2.8.0")
def ** (that: Set[A]): This = &(that)
/** Computes the union between of set and another set.
*
* @param that the set to form the union with.

View File

@ -24,8 +24,6 @@ object TraversableView {
class NoBuilder[A] extends Builder[A, Nothing] {
def +=(elem: A): this.type = this
def iterator: Iterator[A] = Iterator.empty
@deprecated("use `iterator` instead", "2.8.0")
def elements = iterator
def result() = throw new UnsupportedOperationException("TraversableView.Builder.result")
def clear() {}
}

View File

@ -1,61 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.collection
package generic
import annotation.bridge
/** This trait represents collection-like objects that can be added to
* using a '+' operator. It defines variants of `+` and `++`
* as convenience methods in terms of single-element addition `+`.
* @tparam A the type of the elements of the $coll
* @tparam Repr the type of the $coll itself
* @author Martin Odersky
* @version 2.8
* @since 2.8
* @define coll collection
* @define Coll Addable
*/
@deprecated("Will be removed after scala 2.9", "2.8.0")
trait Addable[A, +Repr <: Addable[A, Repr]] { self =>
/** The representation object of type `Repr` which contains the collection's elements
*/
protected def repr: Repr
/** Creates a new $coll with an additional element, unless the element is already present.
* @param elem the element to add
* @return a fresh collection with `elem` added.
*/
def +(elem: A): Repr
/** Creates a new $coll with additional elements.
*
* This method takes two or more elements to be added. Another overloaded
* variant of this method handles the case where a single element is
* added.
* @param elem1 the first element to add.
* @param elem2 the second element to add.
* @param elems the remaining elements to add.
* @return a new $coll with the given elements added.
*/
def + (elem1: A, elem2: A, elems: A*): Repr =
this + elem1 + elem2 ++ elems
/** Creates a new $coll by adding all elements contained in another collection to this $coll.
*
* @param elems the collection containing the added elements.
* @return a new $coll with the given elements added.
*/
def ++ (xs: GenTraversableOnce[A]): Repr = (repr /: xs.seq) (_ + _)
@bridge
def ++ (xs: TraversableOnce[A]): Repr = ++ (xs: GenTraversableOnce[A])
}

View File

@ -35,7 +35,6 @@ trait SeqForwarder[+A] extends Seq[A] with IterableForwarder[A] {
override def prefixLength(p: A => Boolean) = underlying prefixLength p
override def indexWhere(p: A => Boolean): Int = underlying indexWhere p
override def indexWhere(p: A => Boolean, from: Int): Int = underlying.indexWhere(p, from)
override def findIndexOf(p: A => Boolean): Int = underlying indexWhere p
override def indexOf[B >: A](elem: B): Int = underlying indexOf elem
override def indexOf[B >: A](elem: B, from: Int): Int = underlying.indexOf(elem, from)
override def lastIndexOf[B >: A](elem: B): Int = underlying lastIndexOf elem

View File

@ -245,114 +245,6 @@ sealed abstract class List[+A] extends LinearSeq[A]
override def toStream : Stream[A] =
if (isEmpty) Stream.Empty
else new Stream.Cons(head, tail.toStream)
/** Like `span` but with the predicate inverted.
*/
@deprecated("use `span { x => !p(x) }` instead", "2.8.0")
def break(p: A => Boolean): (List[A], List[A]) = span { x => !p(x) }
@deprecated("use `filterNot` instead", "2.8.0")
def remove(p: A => Boolean): List[A] = filterNot(p)
/** Computes the difference between this list and the given list `that`.
*
* @param that the list of elements to remove from this list.
* @return this list without the elements of the given list `that`.
*/
@deprecated("use `list1 filterNot (list2 contains)` instead", "2.8.0")
def -- [B >: A](that: List[B]): List[B] = {
val b = new ListBuffer[B]
var these = this
while (!these.isEmpty) {
if (!that.contains(these.head)) b += these.head
these = these.tail
}
b.toList
}
/** Computes the difference between this list and the given object `x`.
*
* @param x the object to remove from this list.
* @return this list without occurrences of the given object
* `x`.
*/
@deprecated("use `filterNot (_ == x)` instead", "2.8.0")
def - [B >: A](x: B): List[B] = {
val b = new ListBuffer[B]
var these = this
while (!these.isEmpty) {
if (these.head != x) b += these.head
these = these.tail
}
b.toList
}
@deprecated("use `distinct` instead", "2.8.0")
def removeDuplicates: List[A] = distinct
@deprecated("use `sortWith` instead", "2.8.0")
def sort(lt : (A,A) => Boolean): List[A] = {
/** Merge two already-sorted lists */
def merge(l1: List[A], l2: List[A]): List[A] = {
val res = new ListBuffer[A]
var left1 = l1
var left2 = l2
while (!left1.isEmpty && !left2.isEmpty) {
if(lt(left1.head, left2.head)) {
res += left1.head
left1 = left1.tail
} else {
res += left2.head
left2 = left2.tail
}
}
res ++= left1
res ++= left2
res.toList
}
/** Split a list `lst` into two lists of about the same size */
def split(lst: List[A]) = {
val res1 = new ListBuffer[A]
val res2 = new ListBuffer[A]
var left = lst
while (!left.isEmpty) {
res1 += left.head
left = left.tail
if (!left.isEmpty) {
res2 += left.head
left = left.tail
}
}
(res1.toList, res2.toList)
}
/** Merge-sort the specified list */
def ms(lst: List[A]): List[A] =
lst match {
case Nil => lst
case x :: Nil => lst
case x :: y :: Nil =>
if (lt(x,y))
lst
else
y :: x :: Nil
case lst =>
val (l1, l2) = split(lst)
val l1s = ms(l1)
val l2s = ms(l2)
merge(l1s, l2s)
}
ms(this)
}
}
/** The empty list.
@ -418,8 +310,6 @@ final case class ::[B](private var hd: B, private[scala] var tl: List[B]) extend
* @define Coll List
*/
object List extends SeqFactory[List] {
import scala.collection.{Iterable, Seq, IndexedSeq}
/** $genericCanBuildFromInfo */
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, List[A]] =
@ -430,337 +320,6 @@ object List extends SeqFactory[List] {
override def empty[A]: List[A] = Nil
override def apply[A](xs: A*): List[A] = xs.toList
/** Create a sorted list with element values `v,,>n+1,, = step(v,,n,,)`
* where `v,,0,, = start` and elements are in the range between `start`
* (inclusive) and `end` (exclusive).
*
* @param start the start value of the list
* @param end the end value of the list
* @param step the increment function of the list, which given `v,,n,,`,
* computes `v,,n+1,,`. Must be monotonically increasing
* or decreasing.
* @return the sorted list of all integers in range `[start;end)`.
*/
@deprecated("use `iterate` instead", "2.8.0")
def range(start: Int, end: Int, step: Int => Int): List[Int] = {
val up = step(start) > start
val down = step(start) < start
val b = new ListBuffer[Int]
var i = start
while ((!up || i < end) && (!down || i > end)) {
b += i
val next = step(i)
if (i == next)
throw new IllegalArgumentException("the step function did not make any progress on "+ i)
i = next
}
b.toList
}
/** Create a list containing several copies of an element.
*
* @param n the length of the resulting list
* @param elem the element composing the resulting list
* @return a list composed of `n` elements all equal to `elem`
*/
@deprecated("use `fill` instead", "2.8.0")
def make[A](n: Int, elem: A): List[A] = {
val b = new ListBuffer[A]
var i = 0
while (i < n) {
b += elem
i += 1
}
b.toList
}
/** Concatenate all the elements of a given list of lists.
*
* @param xss the list of lists that are to be concatenated
* @return the concatenation of all the lists
*/
@deprecated("use `xss.flatten` instead of `List.flatten(xss)`", "2.8.0")
def flatten[A](xss: List[List[A]]): List[A] = {
val b = new ListBuffer[A]
for (xs <- xss) {
var xc = xs
while (!xc.isEmpty) {
b += xc.head
xc = xc.tail
}
}
b.toList
}
/** Transforms a list of pairs into a pair of lists.
*
* @param xs the list of pairs to unzip
* @return a pair of lists.
*/
@deprecated("use `xs.unzip` instead of `List.unzip(xs)`", "2.8.0")
def unzip[A,B](xs: List[(A,B)]): (List[A], List[B]) = {
val b1 = new ListBuffer[A]
val b2 = new ListBuffer[B]
var xc = xs
while (!xc.isEmpty) {
b1 += xc.head._1
b2 += xc.head._2
xc = xc.tail
}
(b1.toList, b2.toList)
}
/** Transforms an iterable of pairs into a pair of lists.
*
* @param xs the iterable of pairs to unzip
* @return a pair of lists.
*/
@deprecated("use `xs.unzip` instead of `List.unzip(xs)`", "2.8.0")
def unzip[A,B](xs: Iterable[(A,B)]): (List[A], List[B]) =
xs.foldRight[(List[A], List[B])]((Nil, Nil)) {
case ((x, y), (xs, ys)) => (x :: xs, y :: ys)
}
/**
* Returns the `Left` values in the given `Iterable` of `Either`s.
*/
@deprecated("use `xs collect { case Left(x: A) => x }` instead of `List.lefts(xs)`", "2.8.0")
def lefts[A, B](es: Iterable[Either[A, B]]) =
es.foldRight[List[A]](Nil)((e, as) => e match {
case Left(a) => a :: as
case Right(_) => as
})
/**
* Returns the `Right` values in the given `Iterable` of `Either`s.
*/
@deprecated("use `xs collect { case Right(x: B) => x }` instead of `List.rights(xs)`", "2.8.0")
def rights[A, B](es: Iterable[Either[A, B]]) =
es.foldRight[List[B]](Nil)((e, bs) => e match {
case Left(_) => bs
case Right(b) => b :: bs
})
/** Transforms an Iterable of Eithers into a pair of lists.
*
* @param xs the iterable of Eithers to separate
* @return a pair of lists.
*/
@deprecated("use `(for (Left(x) <- es) yield x, for (Right(x) <- es) yield x)` instead", "2.8.0")
def separate[A,B](es: Iterable[Either[A, B]]): (List[A], List[B]) =
es.foldRight[(List[A], List[B])]((Nil, Nil)) {
case (Left(a), (lefts, rights)) => (a :: lefts, rights)
case (Right(b), (lefts, rights)) => (lefts, b :: rights)
}
/** Converts an iterator to a list.
*
* @param it the iterator to convert
* @return a list that contains the elements returned by successive
* calls to `it.next`
*/
@deprecated("use `it.toList` instead of `List.toList(it)`", "2.8.0")
def fromIterator[A](it: Iterator[A]): List[A] = it.toList
/** Converts an array into a list.
*
* @param arr the array to convert
* @return a list that contains the same elements than `arr`
* in the same order
*/
@deprecated("use `array.toList` instead of `List.fromArray(array)`", "2.8.0")
def fromArray[A](arr: Array[A]): List[A] = fromArray(arr, 0, arr.length)
/** Converts a range of an array into a list.
*
* @param arr the array to convert
* @param start the first index to consider
* @param len the length of the range to convert
* @return a list that contains the same elements than `arr`
* in the same order
*/
@deprecated("use `array.view(start, end).toList` instead of `List.fromArray(array, start, end)`", "2.8.0")
def fromArray[A](arr: Array[A], start: Int, len: Int): List[A] = {
var res: List[A] = Nil
var i = start + len
while (i > start) {
i -= 1
res = arr(i) :: res
}
res
}
/** Parses a string which contains substrings separated by a
* separator character and returns a list of all substrings.
*
* @param str the string to parse
* @param separator the separator character
* @return the list of substrings
*/
@deprecated("use `str.split(separator).toList` instead of `List.fromString(str, separator)`", "2.8.0")
def fromString(str: String, separator: Char): List[String] = {
var words: List[String] = Nil
var pos = str.length()
while (pos > 0) {
val pos1 = str.lastIndexOf(separator, pos - 1)
if (pos1 + 1 < pos)
words = str.substring(pos1 + 1, pos) :: words
pos = pos1
}
words
}
/** Returns the given list of characters as a string.
*
* @param xs the list to convert.
* @return the list in form of a string.
*/
@deprecated("use `xs.mkString` instead of `List.toString(xs)`", "2.8.0")
def toString(xs: List[Char]): String = {
val sb = new StringBuilder()
var xc = xs
while (!xc.isEmpty) {
sb.append(xc.head)
xc = xc.tail
}
sb.toString()
}
/** Like xs map f, but returns `xs` unchanged if function
* `f` maps all elements to themselves.
*/
@deprecated("use `xs.mapConserve(f)` instead of `List.mapConserve(xs, f)`", "2.8.0")
def mapConserve[A <: AnyRef](xs: List[A])(f: A => A): List[A] = {
def loop(ys: List[A]): List[A] =
if (ys.isEmpty) xs
else {
val head0 = ys.head
val head1 = f(head0)
if (head1 eq head0) {
loop(ys.tail)
} else {
val ys1 = head1 :: mapConserve(ys.tail)(f)
if (xs eq ys) ys1
else {
val b = new ListBuffer[A]
var xc = xs
while (xc ne ys) {
b += xc.head
xc = xc.tail
}
b.prependToList(ys1)
}
}
}
loop(xs)
}
/** Returns the list resulting from applying the given function `f`
* to corresponding elements of the argument lists.
*
* @param f function to apply to each pair of elements.
* @return `[f(a,,0,,,b,,0,,), ..., f(a,,n,,,b,,n,,)]` if the lists are
* `[a,,0,,, ..., a,,k,,]`, `[b,,0,,, ..., b,,l,,]` and
* `n = min(k,l)`
*/
@deprecated("use `(xs, ys).zipped.map(f)` instead of `List.map2(xs, ys)(f)`", "2.8.0")
def map2[A,B,C](xs: List[A], ys: List[B])(f: (A, B) => C): List[C] = {
val b = new ListBuffer[C]
var xc = xs
var yc = ys
while (!xc.isEmpty && !yc.isEmpty) {
b += f(xc.head, yc.head)
xc = xc.tail
yc = yc.tail
}
b.toList
}
/** Returns the list resulting from applying the given function
* `f` to corresponding elements of the argument lists.
*
* @param f function to apply to each pair of elements.
* @return `[f(a,,0,,,b,,0,,,c,,0,,), ..., f(a,,n,,,b,,n,,,c,,n,,)]`
* if the lists are `[a,,0,,, ..., a,,k,,]`,
* `[b<sub>0</sub>, ..., b,,l,,]`,
* `[c<sub>0</sub>, ..., c,,m,,]` and `n = min(k,l,m)`
*/
@deprecated("use `(xs, ys, zs).zipped.map(f)` instead of `List.map3(xs, ys, zs)(f)`", "2.8.0")
def map3[A,B,C,D](xs: List[A], ys: List[B], zs: List[C])(f: (A, B, C) => D): List[D] = {
val b = new ListBuffer[D]
var xc = xs
var yc = ys
var zc = zs
while (!xc.isEmpty && !yc.isEmpty && !zc.isEmpty) {
b += f(xc.head, yc.head, zc.head)
xc = xc.tail
yc = yc.tail
zc = zc.tail
}
b.toList
}
/** Tests whether the given predicate `p` holds
* for all corresponding elements of the argument lists.
*
* @param p function to apply to each pair of elements.
* @return `(p(a<sub>0</sub>,b<sub>0</sub>) &amp;&amp;
* ... &amp;&amp; p(a<sub>n</sub>,b<sub>n</sub>))]`
* if the lists are `[a<sub>0</sub>, ..., a<sub>k</sub>]`;
* `[b<sub>0</sub>, ..., b<sub>l</sub>]`
* and `n = min(k,l)`
*/
@deprecated("use `(xs, ys).zipped.forall(f)` instead of `List.forall2(xs, ys)(f)`", "2.8.0")
def forall2[A,B](xs: List[A], ys: List[B])(f: (A, B) => Boolean): Boolean = {
var xc = xs
var yc = ys
while (!xc.isEmpty && !yc.isEmpty) {
if (!f(xc.head, yc.head)) return false
xc = xc.tail
yc = yc.tail
}
true
}
/** Tests whether the given predicate `p` holds
* for some corresponding elements of the argument lists.
*
* @param p function to apply to each pair of elements.
* @return `n != 0 &amp;&amp; (p(a<sub>0</sub>,b<sub>0</sub>) ||
* ... || p(a<sub>n</sub>,b<sub>n</sub>))]` if the lists are
* `[a<sub>0</sub>, ..., a<sub>k</sub>]`,
* `[b<sub>0</sub>, ..., b<sub>l</sub>]` and
* `n = min(k,l)`
*/
@deprecated("use `(xs, ys).zipped.exists(f)` instead of `List.exists2(xs, ys)(f)`", "2.8.0")
def exists2[A,B](xs: List[A], ys: List[B])(f: (A, B) => Boolean): Boolean = {
var xc = xs
var yc = ys
while (!xc.isEmpty && !yc.isEmpty) {
if (f(xc.head, yc.head)) return true
xc = xc.tail
yc = yc.tail
}
false
}
/** Transposes a list of lists.
* pre: All element lists have the same length.
*
* @param xss the list of lists
* @return the transposed list of lists
*/
@deprecated("use `xss.transpose` instead of `List.transpose(xss)`", "2.8.0")
def transpose[A](xss: List[List[A]]): List[List[A]] = {
val buf = new ListBuffer[List[A]]
var yss = xss
while (!yss.head.isEmpty) {
buf += (yss map (_.head))
yss = (yss map (_.tail))
}
buf.toList
}
}
/** Only used for list serialization */

View File

@ -92,16 +92,6 @@ object Map extends ImmutableMapFactory[Map] {
def + [B1](kv: (Any, B1)): Map[Any, B1] = updated(kv._1, kv._2)
def - (key: Any): Map[Any, Nothing] = this
}
@deprecated("use `Map.empty` instead", "2.8.0")
class EmptyMap[A,B] extends Map[A,B] with Serializable {
override def size: Int = 0
def get(key: A): Option[B] = None
def iterator: Iterator[(A, B)] = Iterator.empty
override def updated [B1] (key: A, value: B1): Map[A, B1] = new Map1(key, value)
def + [B1](kv: (A, B1)): Map[A, B1] = updated(kv._1, kv._2)
def - (key: A): Map[A, B] = this
}
class Map1[A, +B](key1: A, value1: B) extends Map[A, B] with Serializable {
override def size = 1

View File

@ -129,7 +129,4 @@ object Queue extends SeqFactory[Queue] {
override def apply[A](xs: A*): Queue[A] = new Queue[A](Nil, xs.toList)
private object EmptyQueue extends Queue[Nothing](Nil, Nil) { }
@deprecated("Use Queue.empty instead", "2.8.0")
val Empty: Queue[Nothing] = Queue()
}

View File

@ -35,12 +35,8 @@ abstract class RedBlack[A] extends Serializable {
def delete(k: A): Tree[B] = blacken(del(k))
def range(from: Option[A], until: Option[A]): Tree[B] = blacken(rng(from, until))
def foreach[U](f: (A, B) => U)
@deprecated("use `foreach` instead", "2.8.0")
def visit[T](input: T)(f: (T, A, B) => (Boolean, T)): (Boolean, T)
def toStream: Stream[(A,B)]
def iterator: Iterator[(A, B)]
@deprecated("use `iterator` instead", "2.8.0")
def elements = iterator
def upd[B1 >: B](k: A, v: B1): Tree[B1]
def del(k: A): Tree[B]
def smallest: NonEmpty[B]
@ -165,14 +161,6 @@ abstract class RedBlack[A] extends Serializable {
right foreach f
}
@deprecated("use `foreach` instead", "2.8.0")
def visit[T](input: T)(f: (T,A,B) => (Boolean, T)): (Boolean, T) = {
val left = this.left.visit(input)(f)
if (!left._1) return left
val middle = f(left._2, key, value)
if (!middle._1) return middle
return this.right.visit(middle._2)(f)
}
override def rng(from: Option[A], until: Option[A]): Tree[B] = {
if (from == None && until == None) return this
if (from != None && isSmaller(key, from.get)) return right.rng(from, until);
@ -281,9 +269,6 @@ abstract class RedBlack[A] extends Serializable {
def foreach[U](f: (A, Nothing) => U) {}
@deprecated("use `foreach` instead", "2.8.0")
def visit[T](input: T)(f: (T, A, Nothing) => (Boolean, T)) = (true, input)
def rng(from: Option[A], until: Option[A]) = this
def first = throw new NoSuchElementException("empty map")
def last = throw new NoSuchElementException("empty map")

View File

@ -57,16 +57,6 @@ object Set extends ImmutableSetFactory[Set] {
def iterator: Iterator[Any] = Iterator.empty
override def foreach[U](f: Any => U): Unit = {}
}
@deprecated("use `Set.empty` instead", "2.8.0")
class EmptySet[A] extends Set[A] with Serializable {
override def size: Int = 0
def contains(elem: A): Boolean = false
def + (elem: A): Set[A] = new Set1(elem)
def - (elem: A): Set[A] = this
def iterator: Iterator[A] = Iterator.empty
override def foreach[U](f: A => U): Unit = {}
}
/** An optimized representation for immutable sets of size 1 */
@SerialVersionUID(1233385750652442003L)

View File

@ -20,9 +20,6 @@ object Stack extends SeqFactory[Stack] {
/** $genericCanBuildFromInfo */
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Stack[A]] = ReusableCBF.asInstanceOf[GenericCanBuildFrom[A]]
def newBuilder[A]: Builder[A, Stack[A]] = new ArrayBuffer[A] mapResult (buf => new Stack(buf.toList))
@deprecated("Use Stack.empty instead", "2.8.0")
val Empty: Stack[Nothing] = Stack()
}
/** This class implements immutable stacks using a list-based data

View File

@ -605,9 +605,6 @@ object Stream extends SeqFactory[Stream] {
else Some((xs.head, xs.tail))
}
@deprecated("use #:: instead", "2.8.0")
lazy val lazy_:: = #::
/** An alternative way of building and matching Streams using Stream.cons(hd, tl).
*/
object cons {
@ -702,54 +699,6 @@ object Stream extends SeqFactory[Stream] {
private[immutable] def collectedTail[A, B, That](stream: Stream[A], pf: PartialFunction[A, B], bf: CanBuildFrom[Stream[A], B, That]) = {
cons(pf(stream.head), stream.tail.collect(pf)(bf).asInstanceOf[Stream[B]])
}
/** A stream containing all elements of a given iterator, in the order they are produced.
* @param it The iterator producing the stream's elements
*/
@deprecated("use it.toStream instead", "2.8.0")
def fromIterator[A](it: Iterator[A]): Stream[A] = it.toStream
/** The concatenation of a sequence of streams
*/
@deprecated("use xs.flatten instead", "2.8.0")
def concat[A](xs: Iterable[Stream[A]]): Stream[A] = concat(xs.iterator)
/** The concatenation of all streams returned by an iterator
*/
@deprecated("use xs.toStream.flatten instead", "2.8.0")
def concat[A](xs: Iterator[Stream[A]]): Stream[A] = xs.toStream.flatten //(conforms[Stream[A], scala.collection.Traversable[A]])
/**
* Create a stream with element values `v,,n+1,, = step(v,,n,,)` where
* `v,,0,, = start` and elements are in the range between `start` (inclusive)
* and `end` (exclusive).
*
* @param start the start value of the stream
* @param end the end value of the stream
* @param step the increment function of the stream, must be monotonically increasing or decreasing
* @return the stream starting at value `start`.
*/
@deprecated("use `iterate` instead.", "2.8.0")
def range(start: Int, end: Int, step: Int => Int): Stream[Int] =
iterate(start, end - start)(step)
/**
* Create an infinite stream containing the given element.
*
* @param elem the element composing the resulting stream
* @return the stream containing an infinite number of elem
*/
@deprecated("use `continually` instead", "2.8.0")
def const[A](elem: A): Stream[A] = cons(elem, const(elem))
/** Create a stream containing several copies of an element.
*
* @param n the length of the resulting stream
* @param elem the element composing the resulting stream
* @return the stream composed of n elements all equal to elem
*/
@deprecated("use fill(n, elem) instead", "2.8.0")
def make[A](n: Int, elem: A): Stream[A] = fill(n)(elem)
}

View File

@ -1,36 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.collection
package mutable
import generic._
/** The canonical builder for collections that are addable, i.e. that support
* an efficient `+` method which adds an element to the collection.
*
* Collections are built from their empty element using this `+` method.
* @param empty the empty element of the collection.
* @tparam Elem the type of elements that get added to the builder.
* @tparam To the type of the built collection.
*
* @note "efficient `+`" is not idle talk. Do not use this on mutable collections or any others
* for which `+` may perform an unshared copy! See GrowingBuilder comments for more.
*
* @author Martin Odersky
* @version 2.8
* @since 2.8
*/
@deprecated("Will be removed after scala 2.9", "2.8.0")
class AddingBuilder[Elem, To <: Addable[Elem, To] with collection.Iterable[Elem] with collection.IterableLike[Elem, To]](empty: To)
extends Builder[Elem, To] {
protected var elems: To = empty
def +=(x: Elem): this.type = { elems = elems + x; this }
def clear() { elems = empty }
def result: To = elems
}

View File

@ -46,22 +46,4 @@ trait ArrayLike[A, +Repr] extends IndexedSeqOptimized[A, Repr] { self =>
}
override def stringPrefix = "Array"
}
@deprecated("use deep.toString instead", "2.8.0")
final def deepToString() =
deep.toString
@deprecated("use deep.mkString instead", "2.8.0")
final def deepMkString(start: String, sep: String, end: String): String =
deep.mkString(start, sep, end)
@deprecated("use deep.mkString instead", "2.8.0")
final def deepMkString(sep: String): String =
deepMkString("", sep, "")
@deprecated("use array1.deep.equals(array2.deep) instead", "2.8.0")
final def deepEquals(that: Any): Boolean = that match {
case x: AnyRef if x.getClass.isArray => deep.equals(WrappedArray.make(x).deep)
case _ => false
}
}

View File

@ -115,11 +115,7 @@ extends Seq[T]
val x = table(index).asInstanceOf[T]
table(index) = null
x
}
/** View the top element of the stack. */
@deprecated("use top instead", "2.8.0")
def peek = top
}
/** View the top element of the stack.
*

View File

@ -214,51 +214,6 @@ trait BufferLike[A, +This <: BufferLike[A, This] with Buffer[A]]
*/
def readOnly: scala.collection.Seq[A] = toSeq
/** Adds a number of elements in an array
*
* @param src the array
* @param start the first element to append
* @param len the number of elements to append
*/
@deprecated("replace by: `buf ++= src.view(start, end)`", "2.8.0")
def ++=(src: Array[A], start: Int, len: Int) {
var i = start
val end = i + len
while (i < end) {
this += src(i)
i += 1
}
}
/** Adds a single element to this collection and returns
* the collection itself.
*
* $compatMutate
* You are strongly recommended to use `+=` instead.
*
* @param elem the element to add.
*/
@deprecated("Use += instead if you intend to add by side effect to an existing collection.\n"+
"Use `clone() +=` if you intend to create a new collection.", "2.8.0")
def + (elem: A): This = { +=(elem); repr }
/** Adds two or more elements to this collection and returns
* the collection itself.
*
* $compatMutate
* You are strongly recommended to use `++=` instead.
*
* @param elem1 the first element to add.
* @param elem2 the second element to add.
* @param elems the remaining elements to add.
*/
@deprecated("Use ++= instead if you intend to add by side effect to an existing collection.\n"+
"Use `clone() ++=` if you intend to create a new collection.", "2.8.0")
def + (elem1: A, elem2: A, elems: A*): This = {
this += elem1 += elem2 ++= elems
repr
}
/** Creates a new collection containing both the elements of this collection and the provided
* traversable object.
*

View File

@ -38,16 +38,6 @@ trait BufferProxy[A] extends Buffer[A] with Proxy {
def apply(n: Int): A = self.apply(n)
/** Append a single element to this buffer and return
* the identity of the buffer.
*
* @param elem the element to append.
* @return the updated buffer.
*/
@deprecated("Use += instead if you intend to add by side effect to an existing collection.\n"+
"Use `clone() ++=` if you intend to create a new collection.", "2.8.0")
override def +(elem: A): Buffer[A] = self.+(elem)
/** Append a single element to this buffer.
*
* @param elem the element to append.
@ -56,16 +46,6 @@ trait BufferProxy[A] extends Buffer[A] with Proxy {
override def readOnly = self.readOnly
/** Appends a number of elements provided by a traversable object via its
* `foreach` method. The identity of the buffer is returned.
*
* @param iter the traversable object.
* @return the updated buffer.
*/
@deprecated("Use ++= instead if you intend to add by side effect to an existing collection.\n"+
"Use `clone() ++=` if you intend to create a new collection.", "2.8.0")
override def ++(xs: GenTraversableOnce[A]): Buffer[A] = self.++(xs)
/** Appends a number of elements provided by a traversable object.
*
* @param xs the traversable object.

View File

@ -196,10 +196,6 @@ trait HashTable[A, Entry >: Null <: HashEntry[A, Entry]] extends HashTable.HashU
}
}
/** An iterator returning all entries */
@deprecated("use entriesIterator instead", "2.8.0")
protected def entries: Iterator[Entry] = entriesIterator
/** Remove all entries from table
*/
protected def clearTable() {

View File

@ -54,9 +54,6 @@ extends Map[A, B] with Serializable
def iterator: Iterator[(A, B)] = imap.iterator
@deprecated("use `iterator` instead", "2.8.0")
override def elements = iterator
override def toList: List[(A, B)] = imap.toList
override def update(key: A, value: B): Unit = { imap = imap.updated(key, value) }

View File

@ -40,9 +40,6 @@ class ImmutableSetAdaptor[A](protected var set: immutable.Set[A]) extends Set[A]
def iterator: Iterator[A] = set.iterator
@deprecated("use `iterator` instead", "2.8.0")
override def elements: Iterator[A] = iterator
def +=(elem: A): this.type = { set = set + elem; this }
def -=(elem: A): this.type = { set = set - elem; this }

View File

@ -160,13 +160,6 @@ trait MapLike[A, B, +This <: MapLike[A, B, This] with Map[A, B]]
)
override def -(key: A): This = clone() -= key
/** If given key is defined in this map, remove it and return associated value as an Option.
* If key is not present return None.
* @param key the key to be removed
*/
@deprecated("Use `remove` instead", "2.8.0")
def removeKey(key: A): Option[B] = remove(key)
/** Removes all bindings from the map. After this operation has completed,
* the map will be empty.
*/

View File

@ -36,9 +36,6 @@ trait MultiMap[A, B] extends Map[A, Set[B]] {
*/
protected def makeSet: Set[B] = new HashSet[B]
@deprecated("use addBinding instead", "2.8.0")
def add(key: A, value: B): this.type = addBinding(key, value)
/** Assigns the specified `value` to a specified `key`, replacing
* the existing value assigned to that `key` if it is equal to
* the specified value. Otherwise, simply adds another binding to

View File

@ -105,9 +105,6 @@ extends LinearSeq[A]
}
}
@deprecated("use clear() instead", "2.8.0")
def reset() { clear() }
/** Returns an iterator over all elements of this list.
*/
override def iterator: Iterator[A] = first0.iterator

View File

@ -90,23 +90,6 @@ class PriorityQueue[A](implicit val ord: Ordering[A])
}
}
}
@deprecated(
"Use `+=` instead if you intend to add by side effect to an existing collection.\n"+
"Use `clone() +=` if you intend to create a new collection.", "2.8.0"
)
def +(elem: A): PriorityQueue[A] = { this.clone() += elem }
/** Add two or more elements to this set.
* @param elem1 the first element.
* @param kv2 the second element.
* @param kvs the remaining elements.
*/
@deprecated(
"Use `++=` instead if you intend to add by side effect to an existing collection.\n"+
"Use `clone() ++=` if you intend to create a new collection.", "2.8.0"
)
def +(elem1: A, elem2: A, elems: A*) = { this.clone().+=(elem1, elem2, elems : _*) }
/** Inserts a single element into the priority queue.
*

View File

@ -121,10 +121,6 @@ extends Seq[A]
*/
def pushAll(xs: TraversableOnce[A]): this.type = { xs.seq foreach push ; this }
@deprecated("use pushAll", "2.8.0")
@migration(2, 8, "Stack ++= now pushes arguments on the stack from left to right.")
def ++=(xs: TraversableOnce[A]): this.type = pushAll(xs)
/** Returns the top element of the stack. This method will not remove
* the element from the stack. An error is signaled if there is no
* element on the stack.

View File

@ -49,16 +49,6 @@ trait StackProxy[A] extends Stack[A] with Proxy {
override def pushAll(xs: TraversableOnce[A]): this.type = { self pushAll xs; this }
/** Pushes all elements provided by an `Iterable` object on top of the
* stack. The elements are pushed in the order they are given out by
* the iterator.
*
* @param iter an iterable object
*/
@deprecated("use pushAll", "2.8.0")
override def ++=(xs: TraversableOnce[A]): this.type = { self ++= xs ; this }
override def push(elem1: A, elem2: A, elems: A*): this.type = {
self.push(elem1).push(elem2).pushAll(elems)
this

View File

@ -89,10 +89,6 @@ final class StringBuilder(private val underlying: JavaStringBuilder)
*/
def capacity: Int = underlying.capacity()
@deprecated("Use `ensureCapacity` instead. An assignment is misleading because\n"+
"it can never decrease the capacity.", "2.8.0")
def capacity_=(n: Int) { ensureCapacity(n) }
/** Ensure that the capacity is at least the given argument.
* If the argument is greater than the current capacity, new
* storage will be allocated with size equal to the given
@ -367,31 +363,6 @@ final class StringBuilder(private val underlying: JavaStringBuilder)
def insert(index: Int, x: Float): StringBuilder = insert(index, String.valueOf(x))
def insert(index: Int, x: Double): StringBuilder = insert(index, String.valueOf(x))
def insert(index: Int, x: Char): StringBuilder = insert(index, String.valueOf(x))
@deprecated("Use appendAll instead. This method is deprecated because of the\n"+
"possible confusion with `append(Any)`.", "2.8.0")
def append(x: Seq[Char]): StringBuilder = appendAll(x)
@deprecated("use appendAll instead. This method is deprecated because\n"+
"of the possible confusion with `append(Any)`.", "2.8.0")
def append(x: Array[Char]): StringBuilder = appendAll(x)
@deprecated("use appendAll instead. This method is deprecated because\n"+
"of the possible confusion with `append(Any, Int, Int)'.", "2.8.0")
def append(x: Array[Char], offset: Int, len: Int): StringBuilder = appendAll(x, offset, len)
@deprecated("use insertAll instead. This method is deprecated because of the\n"+
"possible confusion with `insert(Int, Any, Int, Int)'.", "2.8.0")
def insert(index: Int, str: Array[Char], offset: Int, len: Int): StringBuilder =
insertAll(index, str, offset, len)
@deprecated("use insertAll instead. This method is deprecated because of\n"+
"the possible confusion with `insert(Int, Any)'.", "2.8.0")
def insert(at: Int, x: Seq[Char]): StringBuilder = insertAll(at, x)
@deprecated("use insertAll instead. This method is deprecated because of\n"+
"the possible confusion with `insert(Int, Any)'.", "2.8.0")
def insert(at: Int, x: Array[Char]): StringBuilder = insertAll(at, x)
/** Finds the index of the first occurrence of the specified substring.
*

View File

@ -40,15 +40,6 @@ trait SynchronizedBuffer[A] extends Buffer[A] {
super.apply(n)
}
/** Append a single element to this buffer and return
* the identity of the buffer.
*
* @param elem the element to append.
*/
override def +(elem: A): Self = synchronized {
super.+(elem)
}
/** Append a single element to this buffer.
*
* @param elem the element to append.

View File

@ -1,177 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.concurrent
/** This class ...
*
* @author Martin Odersky
* @version 1.0, 12/03/2003
*/
//class MailBox with Monitor with LinkedListQueueCreator {
@deprecated("use actors instead", "2.8.0")
class MailBox extends AnyRef with ListQueueCreator {
type Message = AnyRef
private abstract class PreReceiver {
var msg: Message = null
def isDefinedAt(msg: Message): Boolean
}
private class Receiver[A](receiver: PartialFunction[Message, A]) extends PreReceiver {
def isDefinedAt(msg: Message) = receiver.isDefinedAt(msg)
def receive(): A = synchronized {
while (msg eq null) wait()
receiver(msg)
}
def receiveWithin(msec: Long): A = synchronized {
if (msg eq null) wait(msec)
receiver(if (msg ne null) msg else TIMEOUT)
}
}
private val messageQueue = queueCreate[Message]
private val receiverQueue = queueCreate[PreReceiver]
/** Unconsumed messages. */
private var sent = messageQueue.make
/** Pending receivers. */
private var receivers = receiverQueue.make
/**
* Check whether the receiver can be applied to an unconsumed message.
* If yes, the message is extracted and associated with the receiver.
* Otherwise the receiver is appended to the list of pending receivers.
*/
private def scanSentMsgs[A](receiver: Receiver[A]): Unit = synchronized {
messageQueue.extractFirst(sent, msg => receiver.isDefinedAt(msg)) match {
case None =>
receivers = receiverQueue.append(receivers, receiver)
case Some((msg, withoutMsg)) =>
sent = withoutMsg
receiver.msg = msg
}
}
/**
* First check whether a pending receiver is applicable to the sent
* message. If yes, the receiver is notified. Otherwise the message
* is appended to the linked list of sent messages.
*/
def send(msg: Message): Unit = synchronized {
receiverQueue.extractFirst(receivers, r => r.isDefinedAt(msg)) match {
case None =>
sent = messageQueue.append(sent, msg)
case Some((receiver, withoutReceiver)) =>
receivers = withoutReceiver
receiver.msg = msg
receiver synchronized { receiver.notify() }
}
}
/**
* Block until there is a message in the mailbox for which the processor
* `f` is defined.
*/
def receive[A](f: PartialFunction[Message, A]): A = {
val r = new Receiver(f)
scanSentMsgs(r)
r.receive()
}
/**
* Block until there is a message in the mailbox for which the processor
* `f` is defined or the timeout is over.
*/
def receiveWithin[A](msec: Long)(f: PartialFunction[Message, A]): A = {
val r = new Receiver(f)
scanSentMsgs(r)
r.receiveWithin(msec)
}
}
/**
* Module for dealing with queues.
*/
@deprecated("use actors instead", "2.8.0")
trait QueueModule[A] {
/** Type of queues. */
type T
/** Create an empty queue. */
def make: T
/** Append an element to a queue. */
def append(l: T, x: A): T
/** Extract an element satisfying a predicate from a queue. */
def extractFirst(l: T, p: A => Boolean): Option[(A, T)]
}
/** Inefficient but simple queue module creator. */
@deprecated("use actors instead", "2.8.0")
trait ListQueueCreator {
def queueCreate[A]: QueueModule[A] = new QueueModule[A] {
type T = List[A]
def make: T = Nil
def append(l: T, x: A): T = l ::: x :: Nil
def extractFirst(l: T, p: A => Boolean): Option[(A, T)] =
l match {
case Nil => None
case head :: tail =>
if (p(head))
Some((head, tail))
else
extractFirst(tail, p) match {
case None => None
case Some((x, without_x)) => Some((x, head :: without_x))
}
}
}
}
/** Efficient queue module creator based on linked lists. */
@deprecated("use actors instead", "2.8.0")
trait LinkedListQueueCreator {
import scala.collection.mutable.LinkedList
def queueCreate[A >: Null <: AnyRef]: QueueModule[A] = new QueueModule[A] {
type T = (LinkedList[A], LinkedList[A]) // fst = the list, snd = last elem
def make: T = {
val l = new LinkedList[A](null, null)
(l, l)
}
def append(l: T, x: A): T = {
val atTail = new LinkedList(x, null)
l._2 append atTail;
(l._1, atTail)
}
def extractFirst(l: T, p: A => Boolean): Option[(A, T)] = {
var xs = l._1
var xs1 = xs.next
while ((xs1 ne null) && !p(xs1.elem)) {
xs = xs1
xs1 = xs1.next
}
if (xs1 ne null) {
xs.next = xs1.next
if (xs.next eq null)
Some((xs1.elem, (l._1, xs)))
else
Some((xs1.elem, l))
}
else
None
}
}
}

View File

@ -1,19 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.concurrent
/**
* The message sent to a message box when the period specified in
* `receiveWithin` expires.
*
* @author Martin Odersky
* @version 1.0, 10/03/2003
*/
@deprecated("use actors instead", "2.8.0")
case object TIMEOUT

View File

@ -61,24 +61,6 @@ object ops
(xp, getOrThrow(y.get))
}
/**
* @param start ...
* @param end ...
* @param p ...
*/
@deprecated("use `collection.parallel.ParIterable.foreach` instead", "2.9.0")
def replicate(start: Int, end: Int)(p: Int => Unit)(implicit runner: TaskRunner = defaultRunner) {
if (start == end)
()
else if (start + 1 == end)
p(start)
else {
val mid = (start + end) / 2
spawn { replicate(start, mid)(p) }
replicate(mid, end)(p)
}
}
/*
def parMap[a,b](f: a => b, xs: Array[a]): Array[b] = {
val results = new Array[b](xs.length);

View File

@ -1,206 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.concurrent
/** Library for using Pi-calculus concurrent primitives in
* [[http://scala-lang.org/#_top Scala]]. As an example, the definition of
* a two-place buffer using the `pilib` library looks like:
* {{{
* def Buffer[a](put: Chan[a], get: Chan[a]) {
* def B0 { choice ( put * { x => B1(x) } ) }
* def B1(x: a) { choice ( get(x) * B0, put * { y => B2(x, y) } ) }
* def B2(x: a, y: a) { choice ( get(x) * B1(y) ) }
* B0
* }
* }}}
*
* @see <a href="http://scala-lang.org/docu/papers.html" target="_top">
* PiLib: A Hosted Language for Pi-Calculus Style Concurrency</a>
* @author Vincent Cremet, Martin Odersky
* @version 1.0
*/
@deprecated("use actors instead", "2.8.0")
object pilib {
import TaskRunners.threadRunner
//////////////////////////////// SPAWN /////////////////////////////////
/**
* Run several processes in parallel using the following syntax:
* `spawn < p,,1,, | ... | p,,n,, >`.
*/
abstract class Spawn {
def <(p: => Unit): Spawn
def |(p: => Unit): Spawn
def > (): Unit
}
val spawn = new Spawn {
//object spawn extends Spawn { // BUG !
def <(p: => Unit): Spawn = { scala.concurrent.ops.spawn(p); this }
def |(p: => Unit): Spawn = { scala.concurrent.ops.spawn(p); this }
def > (): Unit = ()
}
/////////////////////////// GUARDED PROCESSES //////////////////////////
/** Untyped channel. */
class UChan {
/** Default log function. */
var log = (x: Any) => ()
}
/** An untyped guarded process.
*
* @param n channel name
* @param polarity input (true) or output (false)
* @param v transmitted value
* @param c continuation
*/
case class UGP(n: UChan, polarity: Boolean, v: Any, c: Any => Any)
/** Typed guarded process. */
class GP[a](n: UChan, polarity: Boolean, v: Any, c: Any => a) {
val untyped = UGP(n, polarity, v, c)
}
//////////////////////////////// CHANNELS //////////////////////////////
/**
* Name on which one can emit, receive or that can be emitted or received
* during a communication.
*/
class Chan[A] extends UChan with Function1[A, Product[A]] {
var defaultValue: A = _
/** Creates an input guarded process. */
def input[B](c: A => B) =
new GP(this, true, (), x => c(x.asInstanceOf[A]))
/** Creates an input guarded process. */
def output[B](v: A, c: () => B) =
new GP(this, false, v, x => c())
/** Blocking read. */
def read = {
var res: A = defaultValue
choice ( input(x => res = x) )
res
}
/** Blocking write. */
def write(x: A) =
choice ( output(x, () => ()) )
/** Syntactic sugar for input. */
def *[B](f: A => B) =
input(f)
/** Syntactic sugar for output. */
def apply(v: A) =
new Product(this, v)
/** Attach a function to be evaluated at each communication event
* on this channel. Replace previous attached function.
*/
def attach(f: A => Unit) =
log = x => f(x.asInstanceOf[A])
}
class Product[A](c: Chan[A], v: A) {
def *[B](f: => B) = c.output(v, () => f)
}
/////////////////////// SUM OF GUARDED PROCESSES ///////////////////////
case class Sum(gs: List[UGP]) {
/** Continuation of the sum. */
var cont: () => Any = _
var initialized = false
/** Block if not initialized otherwise continue with the
* continuation.
*/
def continue = synchronized {
if (!initialized) wait()
cont()
}
/** Set the values of parameters and awake the sleeping sum.
*
* @param f ...
*/
def set(f: () => Any) = synchronized {
cont = f
initialized = true
notify()
}
}
///////////////////////////// COMMUNICATION ////////////////////////////
private var sums: List[Sum] = Nil
/** Test if two lists of guarded processes can communicate.
*
* @param gs1 ...
* @param gs2 ...
* @return ...
*/
private def matches(gs1: List[UGP], gs2: List[UGP]): Option[(() => Unit, () => Any, () => Any)] =
(gs1, gs2) match {
case (Nil, _) => None
case (_, Nil) => None
case (UGP(a1, d1, v1, c1) :: rest1, UGP(a2, d2, v2, c2) :: rest2) =>
if (a1 == a2 && d1 == !d2)
Some(((() => if (d1) a1.log(v2) else a1.log(v1)), (() => c1(v2)), (() => c2(v1))))
else matches(gs1, rest2) match {
case None => matches(rest1, gs2)
case Some(t) => Some(t)
}
}
/** Test if the given sum can react with one of the pending sums.
* If yes then do the reaction otherwise append the sum at the end
* of the pending sums.
*
* @param s1 ...
* @param ss ...
* @return ...
*/
private def compare(s1: Sum, ss: List[Sum]): List[Sum] =
ss match {
case Nil => ss ::: List(s1)
case s2 :: rest => matches(s1.gs, s2.gs) match {
case None => s2 :: compare(s1, rest)
case Some((log, c1, c2)) =>
log()
s1.set(c1)
s2.set(c2)
rest
}
}
/** Pi-calculus non-deterministic choice.
*
* @param s ...
* @return ...
*/
def choice[A](s: GP[A]*): A = {
val sum = Sum(s.toList map { _.untyped })
synchronized { sums = compare(sum, sums) }
(sum.continue).asInstanceOf[A]
}
}

View File

@ -187,15 +187,6 @@ abstract class Source extends Iterator[Char] {
var nerrors = 0
var nwarnings = 0
/** Convenience method, returns given line (not including newline)
* from Source.
*
* @param line the line index, first line is 1
* @return the specified line.
*
*/
@deprecated("Use a collections method such as getLines().toIndexedSeq for random access.", "2.8.0")
def getLine(line: Int): String = lineNum(line)
private def lineNum(line: Int): String = getLines() drop (line - 1) take 1 mkString
class LineIterator() extends Iterator[String] {

View File

@ -13,8 +13,7 @@ package scala.io
* @author Martin Odersky
* @version 1.0, 04/10/2004
*/
object UTF8Codec
{
object UTF8Codec {
final val UNI_REPLACEMENT_CHAR: Int = 0x0000FFFD
final val UNI_REPLACEMENT_BYTES = Array[Byte](-17, -65, -67)
@ -29,36 +28,4 @@ object UTF8Codec
//
// Some useful locations:
// http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt
@deprecated("""Use new String(Array(ch), 0, 1).getBytes("UTF-8") instead""", "2.8.0")
def encode(ch: Int): Array[Byte] =
if ((Character getType ch) == Character.SURROGATE.toInt) UNI_REPLACEMENT_BYTES
else try new String(Array(ch), 0, 1) getBytes "UTF-8" catch {
case _: IllegalArgumentException => UNI_REPLACEMENT_BYTES
}
@deprecated("Use Codec.toUTF8 instead", "2.8.0")
def encode(src: Array[Char], from: Int, dst: Array[Byte], to: Int, len: Int): Int = {
val bytes = Codec toUTF8 src.slice(from, from + len)
Array.copy(bytes, 0, dst, to, bytes.length)
bytes.length
}
@deprecated("Use Codec.toUTF8 instead", "2.8.0")
def encode(s: String, dst: Array[Byte], to: Int): Int =
encode(s.toArray, 0, dst, to, s.length)
@deprecated("Use Codec.toUTF8 instead", "2.8.0")
def encode(s: String): Array[Byte] = Codec toUTF8 s
@deprecated("Use Codec.fromUTF8 instead", "2.8.0")
def decode(src: Array[Byte], from: Int, dst: Array[Char], to: Int, len: Int): Int = {
val chars = Codec fromUTF8 src.slice(from, from + len)
Array.copy(chars, 0, dst, to, chars.length)
chars.length
}
@deprecated("Use Codec.fromUTF8 instead", "2.8.0")
def decode(src: Array[Byte], from: Int, len: Int): String =
Codec fromUTF8 src.slice(from, from + len) mkString
}

View File

@ -12,7 +12,130 @@ package scala
* numeric operations such as elementary exponential, logarithmic, root and
* trigonometric functions.
*/
package object math extends MathCommon {
package object math {
/** The `double` value that is closer than any other to `e`, the base of
* the natural logarithms.
*/
val E = java.lang.Math.E
/** The `double` value that is closer than any other to `pi`, the ratio of
* the circumference of a circle to its diameter.
*/
val Pi = java.lang.Math.PI
/** Returns a `double` value with a positive sign, greater than or equal
* to `0.0` and less than `1.0`.
*/
def random: Double = java.lang.Math.random()
def sin(x: Double): Double = java.lang.Math.sin(x)
def cos(x: Double): Double = java.lang.Math.cos(x)
def tan(x: Double): Double = java.lang.Math.tan(x)
def asin(x: Double): Double = java.lang.Math.asin(x)
def acos(x: Double): Double = java.lang.Math.acos(x)
def atan(x: Double): Double = java.lang.Math.atan(x)
/** Converts an angle measured in degrees to an approximately equivalent
* angle measured in radians.
*
* @param x an angle, in degrees
* @return the measurement of the angle `x` in radians.
*/
def toRadians(x: Double): Double = java.lang.Math.toRadians(x)
/** Converts an angle measured in radians to an approximately equivalent
* angle measured in degrees.
*
* @param x angle, in radians
* @return the measurement of the angle `x` in degrees.
*/
def toDegrees(x: Double): Double = java.lang.Math.toDegrees(x)
/** Returns Euler's number `e` raised to the power of a `double` value.
*
* @param x the exponent to raise `e` to.
* @return the value `e^a^`, where `e` is the base of the natural
* logarithms.
*/
def exp(x: Double): Double = java.lang.Math.exp(x)
def log(x: Double): Double = java.lang.Math.log(x)
def sqrt(x: Double): Double = java.lang.Math.sqrt(x)
def IEEEremainder(x: Double, y: Double): Double = java.lang.Math.IEEEremainder(x, y)
def ceil(x: Double): Double = java.lang.Math.ceil(x)
def floor(x: Double): Double = java.lang.Math.floor(x)
/** Returns the `double` value that is closest in value to the
* argument and is equal to a mathematical integer.
*
* @param x a `double` value
* @return the closest floating-point value to a that is equal to a
* mathematical integer.
*/
def rint(x: Double): Double = java.lang.Math.rint(x)
/** Converts rectangular coordinates `(x, y)` to polar `(r, theta)`.
*
* @param x the ordinate coordinate
* @param y the abscissa coordinate
* @return the ''theta'' component of the point `(r, theta)` in polar
* coordinates that corresponds to the point `(x, y)` in
* Cartesian coordinates.
*/
def atan2(y: Double, x: Double): Double = java.lang.Math.atan2(y, x)
/** Returns the value of the first argument raised to the power of the
* second argument.
*
* @param x the base.
* @param y the exponent.
* @return the value `x^y^`.
*/
def pow(x: Double, y: Double): Double = java.lang.Math.pow(x, y)
/** Returns the closest `long` to the argument.
*
* @param x a floating-point value to be rounded to a `long`.
* @return the value of the argument rounded to the nearest`long` value.
*/
def round(x: Float): Int = java.lang.Math.round(x)
def round(x: Double): Long = java.lang.Math.round(x)
def abs(x: Int): Int = java.lang.Math.abs(x)
def abs(x: Long): Long = java.lang.Math.abs(x)
def abs(x: Float): Float = java.lang.Math.abs(x)
def abs(x: Double): Double = java.lang.Math.abs(x)
def max(x: Int, y: Int): Int = java.lang.Math.max(x, y)
def max(x: Long, y: Long): Long = java.lang.Math.max(x, y)
def max(x: Float, y: Float): Float = java.lang.Math.max(x, y)
def max(x: Double, y: Double): Double = java.lang.Math.max(x, y)
def min(x: Int, y: Int): Int = java.lang.Math.min(x, y)
def min(x: Long, y: Long): Long = java.lang.Math.min(x, y)
def min(x: Float, y: Float): Float = java.lang.Math.min(x, y)
def min(x: Double, y: Double): Double = java.lang.Math.min(x, y)
def signum(x: Double): Double =
if (x == 0d) 0d
else if (x < 0) -1.0
else if (x > 0) 1.0
else x // NaN
def signum(x: Float): Float =
if (x == 0f) 0f
else if (x < 0) -1.0f
else if (x > 0) 1.0f
else x // NaN
def signum(x: Long): Long =
if (x == 0l) 0l
else if (x < 0) -1l
else 1l
def signum(x: Int): Int =
if (x == 0) 0
else if (x < 0) -1
else 1
// -----------------------------------------------------------------------
// root functions

View File

@ -123,70 +123,6 @@ package object scala {
type unchecked = annotation.unchecked.unchecked
type volatile = annotation.volatile
*/
@deprecated("Use Tuple1(x) to create a 1-tuple.", "2.8.0")
def Tuple[A1](x1: A1) = Tuple1(x1)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2](x1: A1, x2: A2) = Tuple2(x1, x2)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3](x1: A1, x2: A2, x3: A3) = Tuple3(x1, x2, x3)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4](x1: A1, x2: A2, x3: A3, x4: A4) = Tuple4(x1, x2, x3, x4)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5) = Tuple5(x1, x2, x3, x4, x5)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6) = Tuple6(x1, x2, x3, x4, x5, x6)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7) = Tuple7(x1, x2, x3, x4, x5, x6, x7)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8) = Tuple8(x1, x2, x3, x4, x5, x6, x7, x8)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9) = Tuple9(x1, x2, x3, x4, x5, x6, x7, x8, x9)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10) = Tuple10(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11) = Tuple11(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12) = Tuple12(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12, x13: A13) = Tuple13(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12, x13: A13, x14: A14) = Tuple14(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12, x13: A13, x14: A14, x15: A15) = Tuple15(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12, x13: A13, x14: A14, x15: A15, x16: A16) = Tuple16(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12, x13: A13, x14: A14, x15: A15, x16: A16, x17: A17) = Tuple17(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12, x13: A13, x14: A14, x15: A15, x16: A16, x17: A17, x18: A18) = Tuple18(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12, x13: A13, x14: A14, x15: A15, x16: A16, x17: A17, x18: A18, x19: A19) = Tuple19(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12, x13: A13, x14: A14, x15: A15, x16: A16, x17: A17, x18: A18, x19: A19, x20: A20) = Tuple20(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12, x13: A13, x14: A14, x15: A15, x16: A16, x17: A17, x18: A18, x19: A19, x20: A20, x21: A21) = Tuple21(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)
@deprecated("Use ((x1, x2, ...)) syntax to create Tuples", "2.8.0")
def Tuple[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22](x1: A1, x2: A2, x3: A3, x4: A4, x5: A5, x6: A6, x7: A7, x8: A8, x9: A9, x10: A10, x11: A11, x12: A12, x13: A13, x14: A14, x15: A15, x16: A16, x17: A17, x18: A18, x19: A19, x20: A20, x21: A21, x22: A22) = Tuple22(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22)
@deprecated("use java.lang.Integer instead", "2.6.0")
type Integer = java.lang.Integer
@deprecated("use java.lang.Character instead", "2.6.0")
type Character = java.lang.Character
@deprecated("use Iterable instead", "2.8.0")
type Collection[+A] = Iterable[A]
@deprecated("use Iterable instead", "2.8.0")
val Collection = Iterable
@deprecated("use Seq instead", "2.8.0")
type Sequence[+A] = scala.collection.Seq[A]
@deprecated("use Seq instead", "2.8.0")
val Sequence = scala.collection.Seq
@deprecated("use IndexedSeq instead", "2.8.0")
type RandomAccessSeq[+A] = scala.collection.IndexedSeq[A]
@deprecated("use IndexedSeq instead", "2.8.0")
val RandomAccessSeq = scala.collection.IndexedSeq
@deprecated("use scala.annotation.Annotation instead", "2.9.0")
type Annotation = scala.annotation.Annotation

View File

@ -1,14 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2002-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.runtime
/** See scala.AnyValCompanion.
*/
@deprecated("Use scala.AnyValCompanion instead", "2.8.0")
private[scala] trait AnyValCompanion extends scala.AnyValCompanion { }

View File

@ -45,14 +45,4 @@ final class RichChar(val self: Char) extends IntegralProxy[Char] {
// public static boolean isDefined(char ch)
// public static boolean isJavaIdentifierStart(char ch)
// public static boolean isJavaIdentifierPart(char ch)
@deprecated("Use ch.toLower instead", "2.8.0")
def toLowerCase: Char = toLower
@deprecated("Use ch.toUpper instead", "2.8.0")
def toUpperCase: Char = toUpper
@deprecated("Use ch.isLower instead", "2.8.0")
def isLowerCase: Boolean = isLower
@deprecated("Use ch.isUpper instead", "2.8.0")
def isUpperCase: Boolean = isUpper
}

View File

@ -32,20 +32,6 @@ import scala.util.parsing.combinator.lexical._
*/
object JSON extends Parser {
/**
* Parse the given `JSON` string and return a list of elements. If the
* string is a `JSON` object it will be a list of pairs. If it's a `JSON`
* array it will be be a list of individual elements.
*
* @param input the given `JSON` string.
* @return an optional list of of elements.
*/
@deprecated("Use parseFull or parseRaw as needed.", "2.8.0")
def parse(input: String): Option[List[Any]] = parseRaw(input).map(unRaw).flatMap({
case l : List[_] => Some(l)
case _ => None
})
/**
* This method converts ''raw'' results back into the original, deprecated
* form.

View File

@ -1,20 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2006-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.util.parsing
import scala.util.parsing.combinator.token
// If deprecating the whole package worked, that's what would best
// be done, but it doesn't (yet) so it isn't.
package object syntax {
@deprecated("Moved to scala.util.parsing.combinator.token", "2.8.0")
type Tokens = token.Tokens
@deprecated("Moved to scala.util.parsing.combinator.token", "2.8.0")
type StdTokens = token.StdTokens
}

View File

@ -1,24 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.xml
/** Use this class to match on (unprefixed) attribute values
* {{{
* val hasName = new HasKeyValue("name")
* node match {
* case Node("foo", hasName(x), _*) => x // foo had attribute with key "name" and with value x
* }
* }}}
*
* @author Burak Emir
*/
@deprecated("Use UnprefixedAttribute's extractor", "2.8.0")
class HasKeyValue(key: String) {
def unapplySeq(x: MetaData): Option[Seq[Node]] = x.get(key)
}

View File

@ -48,14 +48,6 @@ object XML extends XMLLoader[Elem]
/** Returns an XMLLoader whose load* methods will use the supplied SAXParser. */
def withSAXParser(p: SAXParser): XMLLoader[Elem] =
new XMLLoader[Elem] { override val parser: SAXParser = p }
@deprecated("Use save() instead", "2.8.0")
final def saveFull(filename: String, node: Node, xmlDecl: Boolean, doctype: dtd.DocType): Unit =
save(filename, node, encoding, xmlDecl, doctype)
@deprecated("Use save() instead", "2.8.0")
final def saveFull(filename: String, node: Node, enc: String, xmlDecl: Boolean, doctype: dtd.DocType): Unit =
save(filename, node, enc, xmlDecl, doctype)
/** Saves a node to a file with given filename using given encoding
* optionally with xmldecl and doctype declaration.

View File

@ -117,9 +117,6 @@ abstract class Component extends UIElement {
def verify(c: javax.swing.JComponent) = v(UIElement.cachedWrapper[Component](c))
})
}*/
@deprecated("Use mouse instead", "2.8.0") lazy val Mouse = mouse
/**
* Contains publishers for various mouse events. They are separated for
* efficiency reasons.

View File

@ -1,30 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2007-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.swing
import event.Event
import javax.swing._
/**
* Convenience class with utility methods for GUI applications.
*/
@deprecated("Use SwingApplication instead", "2.8.0") class GUIApplication {
/**
* Called before the GUI is created. Override to customize.
*/
def init() {}
/**
* Initializes the framework and runs the given program.
*/
def run(prog: => Unit) = Swing.onEDT { init(); prog }
}

View File

@ -195,24 +195,13 @@ class ListView[A] extends Component {
object indices extends Indices(peer.getSelectedIndices) {
def -=(n: Int): this.type = { peer.removeSelectionInterval(n,n); this }
def +=(n: Int): this.type = { peer.addSelectionInterval(n,n); this }
@deprecated("Use ListView.selection.leadIndex", "2.8.0")
def leadIndex: Int = peer.getSelectionModel.getLeadSelectionIndex
@deprecated("Use ListView.selection.anchorIndex", "2.8.0")
def anchorIndex: Int = peer.getSelectionModel.getAnchorSelectionIndex
}
@deprecated("Use ListView.selectIndices", "2.8.0")
def selectIndices(ind: Int*) = peer.setSelectedIndices(ind.toArray)
/**
* The currently selected items.
*/
object items extends scala.collection.SeqProxy[A] {
def self = peer.getSelectedValues.map(_.asInstanceOf[A])
@deprecated("Use ListView.selection.leadIndex", "2.8.0")
def leadIndex: Int = peer.getSelectionModel.getLeadSelectionIndex
@deprecated("Use ListView.selection.anchorIndex", "2.8.0")
def anchorIndex: Int = peer.getSelectionModel.getAnchorSelectionIndex
}
def intervalMode: IntervalMode.Value = IntervalMode(peer.getSelectionModel.getSelectionMode)

View File

@ -1,46 +0,0 @@
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2007-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.swing
import javax.swing._
/**
* Extend this class for most simple UI applications. Clients need to
* implement the `top` method. Framework initialization is done by this class.
*
* In order to conform to Swing's threading policy, never implement top or any
* additional member that created Swing components as a value unless component
* creation happens on the EDT (see `Swing.onEDT` and `Swing.onEDTWait`).
* Lazy values are okay for the same reason if they are initialized on the EDT
* always.
*/
@deprecated("Use SimpleSwingApplication instead", "2.8.0") abstract class SimpleGUIApplication extends GUIApplication {
/**
* A GUI application's version of the main method. Called by the default
* main method implementation provided by this class.
* Implement to return the top-level frame of this application.
*/
def top: Frame
/**
* Calls top, packs the frame, and displays it.
*/
def main(args: Array[String]) = run {
val t = top
t.pack()
t.visible = true
}
def resourceFromClassloader(path: String): java.net.URL =
this.getClass.getResource(path)
def resourceFromUserDirectory(path: String): java.io.File =
new java.io.File(util.Properties.userDir, path)
}

View File

@ -1,8 +1,27 @@
package scala.swing
/**
* Extend this class for most simple UI applications. Clients need to
* implement the `top` method. Framework initialization is done by this class.
*
* In order to conform to Swing's threading policy, never implement top or any
* additional member that created Swing components as a value unless component
* creation happens on the EDT (see `Swing.onEDT` and `Swing.onEDTWait`).
* Lazy values are okay for the same reason if they are initialized on the EDT
* always.
*/
abstract class SimpleSwingApplication extends SwingApplication {
/**
* A GUI application's version of the main method. Called by the default
* main method implementation provided by this class.
* Implement to return the top-level frame of this application.
*/
def top: Frame
/**
* Calls `top`, packs the frame, and displays it.
*/
override def startup(args: Array[String]) {
val t = top
if (t.size == new Dimension(0,0)) t.pack()

View File

@ -1,9 +1,17 @@
package scala.swing
/** Convenience class with utility methods for GUI applications. */
abstract class SwingApplication extends Reactor {
/** Initializes the application and runs the given program. */
def main(args: Array[String]) = Swing.onEDT { startup(args) }
/** Called before the GUI is created. Override to customize. */
def startup(args: Array[String])
/** Finalizes the application by calling `shutdown` and exits.*/
def quit() { shutdown(); sys.exit(0) }
/** Called before the application is exited. Override to customize. */
def shutdown() {}
}

View File

@ -96,9 +96,6 @@ trait UIElement extends Proxy with LazyPublisher {
def location = peer.getLocation
def bounds = peer.getBounds
def size = peer.getSize
@deprecated("Explicit size assignment for UIElements is not supported anymore. " +
"Use a layout manager or subclass Window.", "2.8.0")
def size_=(dim: Dimension) = peer.setSize(dim)
def locale = peer.getLocale
def toolkit = peer.getToolkit

View File

@ -61,7 +61,7 @@ abstract class Window extends UIElement with RootPanel with Publisher { outer =>
def setLocationRelativeTo(c: UIElement) { peer.setLocationRelativeTo(c.peer) }
def centerOnScreen() { peer.setLocationRelativeTo(null) }
def location_=(p: Point) { peer.setLocation(p) }
override def size_=(size: Dimension) { peer.setSize(size) }
def size_=(size: Dimension) { peer.setSize(size) }
def bounds_=(rect: Rectangle) { peer.setBounds(rect) }
def owner: Window = UIElement.cachedWrapper[Window](peer.getOwner)

View File

@ -14,12 +14,3 @@ package event
trait ComponentEvent extends UIEvent {
val source: Component
}
@deprecated("Use UIElementMoved instead.", "2.8.0")
case class ComponentMoved(source: Component) extends ComponentEvent
@deprecated("Use UIElementResized instead.", "2.8.0")
case class ComponentResized(source: Component) extends ComponentEvent
@deprecated("Use UIElementShown instead.", "2.8.0")
case class ComponentShown(source: Component) extends ComponentEvent
@deprecated("Use UIElementHidden instead.", "2.8.0")
case class ComponentHidden(source: Component) extends ComponentEvent

View File

@ -1,9 +1,10 @@
package scala.swing
package test
import scala.swing.Swing._
import scala.swing.{MainFrame, Panel, SimpleGUIApplication}
import scala.swing.{MainFrame, Panel}
import scala.swing.event._
import java.awt.{Color, Dimension, Graphics, Graphics2D, Point, geom}
import java.awt.{Color, Graphics2D, Point, geom}
/**
* Dragging the mouse draws a simple graph

View File

@ -110,7 +110,7 @@ object Test4 {
import java.lang.reflect.AnnotatedElement
def printSourceAnnotation(a: Annotation) {
val ann = a.asInstanceOf[SourceAnnotation]
println("@test.SourceAnnotation(mails=" + ann.mails.deepMkString("{", ",", "}") +
println("@test.SourceAnnotation(mails=" + ann.mails.deep.mkString("{", ",", "}") +
", value=" + ann.value + ")")
}
def printSourceAnnotations(target: AnnotatedElement) {

View File

@ -1,14 +1,11 @@
object Test {
import scala.xml.{Node,HasKeyValue}
import scala.xml.{Node,UnprefixedAttribute}
def domatch(x:Node): Node = {
val hasBar = new HasKeyValue("bar")
def domatch(x:Node) =
x match {
case Node("foo", hasBar(z), _*) => z
case Node("foo", UnprefixedAttribute("bar", z, _), _*) => z
case _ => null
}
}
def main(args: Array[String]): Unit = {
println(domatch(<foo bar="baz"><hi/></foo>))

Some files were not shown because too many files have changed in this diff Show More