diff options
author | Martin Odersky <odersky@gmail.com> | 2006-07-28 11:12:16 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-07-28 11:12:16 +0000 |
commit | 261ff3d0abea28091ce951613f440ccaabdfb7b5 (patch) | |
tree | 7fe20dd86c68f011cb3d98851def632ea0cd9db1 /test/files | |
parent | a3be6043783a91e1035847207831eb1305da78bb (diff) | |
download | scala-261ff3d0abea28091ce951613f440ccaabdfb7b5.tar.gz scala-261ff3d0abea28091ce951613f440ccaabdfb7b5.tar.bz2 scala-261ff3d0abea28091ce951613f440ccaabdfb7b5.zip |
changled handling of gadts
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/pos/gadts2.scala | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/files/pos/gadts2.scala b/test/files/pos/gadts2.scala new file mode 100644 index 0000000000..ca905c572a --- /dev/null +++ b/test/files/pos/gadts2.scala @@ -0,0 +1,26 @@ +object Test{ + +abstract class Number +case class Int(n: int) extends Number +case class Double(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] + + +def f[a](t:Term[a], c:Cell[a]): unit = + t match { + case NumTerm(n) => c.x = Double(1.0) + } + + +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) +} +} |