blob: 535ed8ecbf7c9e6ad2a52c34f3dd4a46fea6a694 (
plain) (
tree)
|
|
import org.scalacheck._
import Prop._
import Gen._
import Arbitrary._
import scala.reflect.runtime.universe._
import Flag._
object TypeConstructionProps extends QuasiquoteProperties("type construction") {
property("bare idents contain type names") = test {
tq"x" ≈ Ident(TypeName("x"))
}
property("splice type names into AppliedTypeTree") = forAll { (name1: TypeName, name2: TypeName) =>
tq"$name1[$name2]" ≈ AppliedTypeTree(Ident(name1), List(Ident(name2)))
}
property("tuple type") = test {
val empty = List[Tree]()
val ts = List(tq"t1", tq"t2")
assert(tq"(..$empty)" ≈ tq"scala.Unit")
assert(tq"(..$ts)" ≈ tq"Tuple2[t1, t2]")
assert(tq"(t0, ..$ts)" ≈ tq"Tuple3[t0, t1, t2]")
}
}
|