sbt/compile/src/test/scala/BasicAPI.scala

61 lines
1.2 KiB
Scala
Raw Normal View History

package sbt
package compile
import java.io.File
import org.specs.Specification
object CheckBasicAPI extends Specification
{
val basicName = new File("Basic.scala")
val basicSource =
"""
package org.example {
trait Parent[A] { def x: A }
abstract class Child extends Parent[String]
class S {
def x = new { def y = new S { def z = new Child { def x = "asdf" } } }
}
object Basic
trait Out {
trait In
def t: In
}
}
package org.example2 {
trait ZZ[S] {
val p: S
val q: ZZZ[S] { val what: S }
class A extends ZZZ[S] {
val p = error("")
val q = error("")
}
}
trait ZZZ[T] extends ZZ[List[T]]
trait ZZZZ extends ZZZ[Int]
trait Z extends ZZZZ
trait P[S] {
trait Q
def x(s: S): S
def q(v: Q): Q
val u: Q
val p: S
}
trait Out { self: P[String] =>
trait In
def z = p
def t(i: In): In
def y(q: Q): Q
}
}
"""
"Compiling should succeed" in {
WithFiles(basicName -> basicSource){ files =>
for(scalaVersion <- TestCompile.allVersions)
{
TestCompile(scalaVersion, files){ loader => Class.forName("org.example.Basic", false, loader) }
true must beTrue // don't know how to just check that previous line completes without exception
}
}
}
}