1
import scala.{specialized => spec}
3
class Interval[@spec(Int) T](high:T)
5
class X1[@spec(Int) T](interval:Interval[T]) { val x = interval }
6
class Y1[@spec(Int) T](interval:Interval[T]) { val y = Some(interval) }
8
class X2[T](val interval:Interval[T]) { val x = interval }
9
class Y2[T](val interval:Interval[T]) { val y = Some(interval) }
11
class X3[@spec(Int) T](val interval:Interval[T]) { val x = interval }
12
class Y3[@spec(Int) T](val interval:Interval[T]) { val y = Some(interval) }
15
def tryit(o: => Any) = println(try { "ok: " + o.getClass.getName } catch { case e => "FAIL: " + e + "\n" + e.getStackTrace.mkString("\n ") })
17
def main(args: Array[String]) {
18
tryit(new X1(new Interval(3)))
19
tryit(new X2(new Interval(3)))
20
tryit(new X3(new Interval(3)))
21
tryit(new Y1(new Interval(3)))
22
tryit(new Y2(new Interval(3)))
23
tryit(new Y3(new Interval(3)))