summaryrefslogtreecommitdiff
path: root/test/files/neg/gadts1.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-08-16 14:00:59 +0000
committerMartin Odersky <odersky@gmail.com>2006-08-16 14:00:59 +0000
commit840911b8e30c0ef203a087ca4d91a24f148f3dd9 (patch)
tree48ff5d4a7276962ec71d09c15070458ae2136cd4 /test/files/neg/gadts1.scala
parent49ee6e4ec40b8739e0f86c3ec23b7742e423f12f (diff)
downloadscala-840911b8e30c0ef203a087ca4d91a24f148f3dd9.tar.gz
scala-840911b8e30c0ef203a087ca4d91a24f148f3dd9.tar.bz2
scala-840911b8e30c0ef203a087ca4d91a24f148f3dd9.zip
allowed access to provates between a class and ...
allowed access to provates between a class and its companion module
Diffstat (limited to 'test/files/neg/gadts1.scala')
-rwxr-xr-xtest/files/neg/gadts1.scala27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/files/neg/gadts1.scala b/test/files/neg/gadts1.scala
new file mode 100755
index 0000000000..67aef4f2d9
--- /dev/null
+++ b/test/files/neg/gadts1.scala
@@ -0,0 +1,27 @@
+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]
+case class NumTerm(val n: Number) extends Term[Number]
+class IntTerm(n: Int) extends NumTerm(n) with Term[Int]
+
+
+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[Int](Int(6))
+ Console.println(cell)
+ f[Int](new IntTerm(Int(5)), cell)
+ Console.println(cell)
+}
+}