diff options
Diffstat (limited to 'test/files/pos/gadts2.scala')
-rw-r--r-- | test/files/pos/gadts2.scala | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/test/files/pos/gadts2.scala b/test/files/pos/gadts2.scala index ca905c572a..fc2a7e4333 100644 --- a/test/files/pos/gadts2.scala +++ b/test/files/pos/gadts2.scala @@ -1,26 +1,25 @@ -object Test{ +object Test { -abstract class Number -case class Int(n: int) extends Number -case class Double(d: double) extends Number + abstract class Number + case class MyInt(n: Int) extends Number + case class MyDouble(d: Double) extends Number -trait Term[+a] -case class Cell[a](var x: a) extends Term[a] -final case class NumTerm(val n: Number) extends Term[Number] + trait Term[+a] + case class Cell[a](var x: a) extends Term[a] + final case class NumTerm(val n: Number) extends Term[Number] - -def f[a](t:Term[a], c:Cell[a]): unit = - t match { - case NumTerm(n) => c.x = Double(1.0) + def f[a](t: Term[a], c: Cell[a]) { + t match { + case NumTerm(n) => c.x = MyDouble(1.0) + } } + val x: Term[Number] = NumTerm(MyInt(5)) -val x:Term[Number] = NumTerm(Int(5)) - -def main(args: Array[String]): unit = { - val cell = Cell[Number](Int(6)) - Console.println(cell) - f[Number](new NumTerm(Int(5)), cell) - Console.println(cell) -} + def main(args: Array[String]) { + val cell = Cell[Number](MyInt(6)) + Console.println(cell) + f[Number](new NumTerm(MyInt(5)), cell) + Console.println(cell) + } } |