blob: 715f88cd8ee363136211619272c220d6754a04fe (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2009, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
// $Id: Iterable.scala 15188 2008-05-24 15:01:02Z stepancheg $
package scalax.collection.generic.covariant
import annotation.unchecked.uncheckedVariance
/** Collection classes mixing in this class provide a method
* <code>elements</code> which returns an iterator over all the
* elements contained in the collection.
*
* @note If a collection has a known <code>size</code>, it should also sub-type <code>Collection</code>.
* Only potentially unbounded collections should directly sub-class <code>Iterable</code>.
* @author Matthias Zenger
* @version 1.1, 04/02/2004
*/
trait IterableTemplate[+CC[+B] <: IterableTemplate[CC, B] with Iterable[B], +A]
extends generic.IterableTemplate[CC, A @uncheckedVariance] { self /*: CC[A]*/ =>
/* can't have a covariant view here, because mutable.Vector would
override it
override def view: IterableView[CC, A] = new IterableView[CC, A] {
val origin = thisCC
val elements: Iterator[A] = self.elements
}
*/
}
// !!! todo: explain why @uncheckedVariance is justified here.
|