summaryrefslogtreecommitdiff
path: root/test/files/pos/gadts2.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-07-28 11:12:16 +0000
committerMartin Odersky <odersky@gmail.com>2006-07-28 11:12:16 +0000
commit261ff3d0abea28091ce951613f440ccaabdfb7b5 (patch)
tree7fe20dd86c68f011cb3d98851def632ea0cd9db1 /test/files/pos/gadts2.scala
parenta3be6043783a91e1035847207831eb1305da78bb (diff)
downloadscala-261ff3d0abea28091ce951613f440ccaabdfb7b5.tar.gz
scala-261ff3d0abea28091ce951613f440ccaabdfb7b5.tar.bz2
scala-261ff3d0abea28091ce951613f440ccaabdfb7b5.zip
changled handling of gadts
Diffstat (limited to 'test/files/pos/gadts2.scala')
-rw-r--r--test/files/pos/gadts2.scala26
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)
+}
+}