8000 Merge pull request #5 from losvald/esc-unstable · losvald/scala@92204e1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 92204e1

Browse files
committed
Merge pull request scala#5 from losvald/esc-unstable
Cut number of errors almost in half
2 parents 2649bc4 + e0ad168 commit 92204e1

24 files changed

+71
-66
lines changed

src/library/scala/collection/GenSeqLike.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ import generic._
3131
* Unlike iterables, sequences always have a defined order of elements.
3232
*/
3333
trait GenSeqLike[+A, +Repr] extends Any with GenIterableLike[A, Repr] with Equals with Parallelizable[A, parallel.ParSeq[A]] {
34+
type LT
35+
3436
def seq: Seq[A]
3537

3638
/** Selects an element by its index in the $coll.
@@ -80,7 +82,7 @@ trait GenSeqLike[+A, +Repr] extends Any with GenIterableLike[A, Repr] with Equal
8082
* @return the length of the longest segment of this $coll starting from index `from`
8183
* such that every element of the segment satisfies the predicate `p`.
8284
*/
83-
def segmentLength(p: A => Boolean, from: Int): Int
85+
def segmentLength(@plocal p: A => Boolean, from: Int): Int
8486

8587
/** Returns the length of the longest prefix whose elements all satisfy some predicate.
8688
*
@@ -90,7 +92,7 @@ trait GenSeqLike[+A, +Repr] extends Any with GenIterableLike[A, Repr] with Equal
9092
* @return the length of the longest prefix of this $coll
9193
* such that every element of the segment satisfies the predicate `p`.
9294
*/
93-
def prefixLength(p: A => Boolean): Int = segmentLength(p, 0)
95+
def prefixLength(@plocal p: A => Boolean): Int = segmentLength(p, 0)
9496

9597
/** Finds index of the first element satisfying some predicate after or at some start index.
9698
*
@@ -338,10 +340,10 @@ trait GenSeqLike[+A, +Repr] extends Any with GenIterableLike[A, Repr] with Equal
338340
* {{{
339341
* scala> val a = List(1)
340342
* a: List[Int] = List(1)
341-
*
343+
*
342344
* scala> val b = a :+ 2
343345
* b: List[Int] = List(1, 2)
344-
*
346+
*
345347
* scala> println(a)
346348
* List(1)
347349
* }}}

src/library/scala/collection/GenTraversableOnce.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ trait GenTraversableOnce[+A] extends Any {
396396
*/
397397
def minBy[B](@plocal f: A => B)(implicit cmp: Ordering[B]): A
398398

399-
def forall(pred: A => Boolean): Boolean
399+
def forall(@plocal pred: A => Boolean): Boolean
400400

401401
def exists(pred: A => Boolean): Boolean
402402

src/library/scala/collection/IndexedSeqOptimized.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ trait IndexedSeqOptimized[+A, +Repr] extends Any with IndexedSeqLike[A, Repr] {
3535
while (i < len) { f(this(i)); i += 1 }
3636
}
3737

38-
private def prefixLengthImpl(p: A => Boolean, expectTrue: Boolean): Int = {
38+
private def prefixLengthImpl(@plocal p: A => Boolean, expectTrue: Boolean): Int = {
3939
var i = 0
4040
while (i < length && p(apply(i)) == expectTrue) i += 1
4141
i
@@ -191,7 +191,7 @@ trait IndexedSeqOptimized[+A, +Repr] extends Any with IndexedSeqLike[A, Repr] {
191191
def lengthCompare(len: Int): Int = length - len
192192

193193
override /*SeqLike*/
194-
def segmentLength(p: A => Boolean, from: Int): Int = {
194+
def segmentLength(@plocal p: A => Boolean, from: Int): Int = {
195195
val len = length
196196
var i = from
197197
while (i < len && p(this(i))) i += 1

src/library/scala/collection/IterableViewLike.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ trait IterableViewLike[+A,
3636
with TraversableViewLike[A, Coll, This]
3737
{ self =>
3838

39+
type LT
40+
3941
/** Explicit instantiation of the `Transformed` trait to reduce class file size in subclasses. */
4042
private[collection] abstract class AbstractTransformed[+B] extends Iterable[B] with super[TraversableViewLike].Transformed[B] with Transformed[B]
4143

@@ -112,10 +114,10 @@ trait IterableViewLike[+A,
112114
protected override def newAppended[B >: A](that: GenTraversable[B]): Transformed[B] = new { val rest = that } with AbstractTransformed[B] with Appended[B]
113115
protected override def newMapped[B](f: A => B): Transformed[B] = new { val mapping = f } with AbstractTransformed[B] with Mapped[B]
114116
protected override def newFlatMapped[B](f: A => GenTraversableOnce[B]): Transformed[B] = new { val mapping = f } with AbstractTransformed[B] with FlatMapped[B]
115-
protected override def newFiltered(p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with Filtered
117+
protected override def newFiltered(@plocal p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with Filtered
116118
protected override def newSliced(_endpoints: SliceInterval): Transformed[A] = new { val endpoints = _endpoints } with AbstractTransformed[A] with Sliced
117-
protected override def newDroppedWhile(p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with DroppedWhile
118-
protected override def newTakenWhile(p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with TakenWhile
119+
protected override def newDroppedWhile(@plocal p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with DroppedWhile
120+
protected override def newTakenWhile(@plocal p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with TakenWhile
119121

120122
// After adding take and drop overrides to IterableLike, these overrides (which do nothing
121123
// but duplicate the implementation in TraversableViewLike) had to be added to prevent the

src/library/scala/collection/LinearSeqOptimized.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ trait LinearSeqOptimized[+A, +Repr <: LinearSeqOptimized[A, Repr]] extends Linea
283283
def isDefinedAt(x: Int): Boolean = x >= 0 && lengthCompare(x) > 0
284284

285285
override /*SeqLike*/
286-
def segmentLength(p: A => Boolean, from: Int): Int = {
286+
def segmentLength(@plocal p: A => Boolean, from: Int): Int = {
287287
var i = 0
288288
var these = this drop from
289289
while (!these.isEmpty && p(these.head)) {

src/library/scala/collection/SeqLike.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ import scala.math.{ min, max, Ordering }
6161
*/
6262
trait SeqLike[+A, +Repr] extends Any with IterableLike[A, Repr] with GenSeqLike[A, Repr] with Parallelizable[A, ParSeq[A]] { self =>
6363

64+
type LT
65+
6466
override protected[this] def thisCollection: Seq[A] = this.asInstanceOf[Seq[A]]
6567
override protected[this] def toCollection(repr: Repr): Seq[A] = repr.asInstanceOf[Seq[A]]
6668

@@ -105,7 +107,7 @@ trait SeqLike[+A, +Repr] extends Any with IterableLike[A, Repr] with GenSeqLike[
105107
*/
106108
override def size = length
107109

108-
def segmentLength(p: A => Boolean, from: Int): Int = {
110+
def segmentLength(@plocal p: A => Boolean, from: Int): Int = {
109111
var i = 0
110112
val it = iterator.drop(from)
111113
while (it.hasNext && p(it.next()))
@@ -146,7 +148,7 @@ trait SeqLike[+A, +Repr] extends Any with IterableLike[A, Repr] with GenSeqLike[
146148
* more than one way to generate the same subsequence, only one will be returned.
147149
*
148150
* For example, `"xyyy"` has three different ways to generate `"xy"` depending on
149-
* whether the first, second, or third `"y"` is selected. However, since all are
151+
* whether the first, second, or third `"y"` is selected. However, since all are
150152
* identical, only one will be chosen. Which of the three will be taken is an
151153
* implementation detail that is not defined.
152154
*

src/library/scala/collection/SeqProxyLike.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ trait SeqProxyLike[+A, +Repr <: SeqLike[A, Repr] with Seq[A]] extends SeqLike[A,
3131
override def apply(idx: Int): A = self.apply(idx)
3232
override def lengthCompare(len: Int): Int = self.lengthCompare(len)
3333
override def isDefinedAt(x: Int): Boolean = self.isDefinedAt(x)
34-
override def segmentLength(p: A => Boolean, from: Int): Int = self.segmentLength(p, from)
35-
override def prefixLength(p: A => Boolean) = self.prefixLength(p)
34+
override def segmentLength(@plocal p: A => Boolean, from: Int): Int = self.segmentLength(p, from)
35+
override def prefixLength(@plocal p: A => Boolean) = self.prefixLength(p)
3636
override def indexWhere(p: A => Boolean): Int = self.indexWhere(p)
3737
override def indexWhere(p: A => Boolean, from: Int): Int = self.indexWhere(p, from)
3838
override def indexOf[B >: A](elem: B): Int = self.indexOf(elem)
@@ -70,5 +70,3 @@ trait SeqProxyLike[+A, +Repr <: SeqLike[A, Repr] with Seq[A]] extends SeqLike[A,
7070
override def view = self.view
7171
override def view(from: 10000 Int, until: Int) = self.view(from, until)
7272
}
73-
74-

src/library/scala/collection/SeqViewLike.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,10 +196,10 @@ trait SeqViewLike[+A,
196196
protected override def newAppended[B >: A](that: GenTraversable[B]): Transformed[B] = new { val rest = that } with AbstractTransformed[B] with Appended[B]
197197
protected override def newMapped[B](f: A => B): Transformed[B] = new { val mapping = f } with AbstractTransformed[B] with Mapped[B]
198198
protected override def newFlatMapped[B](f: A => GenTraversableOnce[B]): Transformed[B] = new { val mapping = f } with AbstractTransformed[B] with FlatMapped[B]
199-
protected override def newFiltered(p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with Filtered
199+
protected override def newFiltered(@plocal p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with Filtered
200200
protected override def newSliced(_endpoints: SliceInterval): Transformed[A] = new { val endpoints = _endpoints } with AbstractTransformed[A] with Sliced
201-
protected override def newDroppedWhile(p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with DroppedWhile
202-
protected override def newTakenWhile(p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with TakenWhile
201+
protected override def newDroppedWhile(@plocal p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with DroppedWhile
202+
protected override def newTakenWhile(@plocal p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with TakenWhile
203203
protected override def newZipped[B](that: GenIterable[B]): Transformed[(A, B)] = new { val other = that } with AbstractTransformed[(A, B)] with Zipped[B]
204204
protected override def newZippedAll[A1 >: A, B](that: GenIterable[B], _thisElem: A1, _thatElem: B): Transformed[(A1, B)] = new {
205205
val other = that

src/library/scala/collection/TraversableProxyLike.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ import scala.reflect.ClassTag
2525
* @since 2.8
2626
*/
2727
@deprecated("Proxying is deprecated due to lack of use and compiler-level support.", "2.11.0")
28-
trait TraversableProxyLike[+A, +Repr <: TraversableLike[A, Repr] with Traversable[A]] extends TraversableLike[A, Repr] with Proxy {
29-
type LT
28+
trait TraversableProxyLike[+A, +Repr <: TraversableLike[A, Repr] with Traversable[A] /*{ type LT }*/] extends TraversableLike[A, Repr] with Proxy {
29+
type LT //= Repr#LT
3030

3131
def self: Repr
3232

src/library/scala/collection/TraversableViewLike.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,10 +257,10 @@ trait TraversableViewLike[+A,
257257
protected def newAppended[B >: A](that: GenTraversable[B]): Transformed[B] = new { val rest = that } with AbstractTransformed[B] with Appended[B]
258258
protected def newMapped[B](f: A => B): Transformed[B] = new { val mapping = f } with AbstractTransformed[B] with Mapped[B]
259259
protected def newFlatMapped[B](f: A => GenTraversableOnce[B]): Transformed[B] = new { val mapping = f } with AbstractTransformed[B] with FlatMapped[B]
260-
protected def newFiltered(p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with Filtered
260+
protected def newFiltered(@plocal p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with Filtered
261261
protected def newSliced(_endpoints: SliceInterval): Transformed[A] = new { val endpoints = _endpoints } with AbstractTransformed[A] with Sliced
262-
protected def newDroppedWhile(p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with DroppedWhile
263-
protected def newTakenWhile(p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with TakenWhile
262+
protected def newDroppedWhile(@plocal p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with DroppedWhile
263+
protected def newTakenWhile(@plocal p: A => Boolean): Transformed[A] = new { val pred = p } with AbstractTransformed[A] with TakenWhile
264264

265265
protected def newTaken(n: Int): Transformed[A] = newSliced(SliceInterval(0, n))
266266
protected def newDropped(n: Int): Transformed[A] = newSliced(SliceInterval(n, Int.MaxValue))

0 commit comments

Comments
 (0)
0