File: bug1275.scala

package info (click to toggle)
scala 2.7.7.dfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 75,804 kB
  • ctags: 1,852
  • sloc: java: 7,762; xml: 6,608; sh: 1,723; cs: 158; makefile: 9; ansic: 6
file content (14 lines) | stat: -rw-r--r-- 414 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// tested using Scala compiler version 2.6.0-RC1 -- (c) 2002-2009 LAMP/EPFL

// prompted by "Covariant return types" mailing list question
object TestCovariance {

    // see  Type constructor polymorphism  in  http://www.scala-lang.org/docu/changelog.html
    trait Seq[+t] {
        type MyType[+t] <: Seq[t]

        def f: MyType[t]
    }

    def span[a, s <: Seq[a] { type MyType <: s } ](xs: s): s = xs f
}