diff options
author | Martin Odersky <odersky@gmail.com> | 2006-08-16 14:00:59 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-08-16 14:00:59 +0000 |
commit | 840911b8e30c0ef203a087ca4d91a24f148f3dd9 (patch) | |
tree | 48ff5d4a7276962ec71d09c15070458ae2136cd4 /test/files/neg | |
parent | 49ee6e4ec40b8739e0f86c3ec23b7742e423f12f (diff) | |
download | scala-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')
-rw-r--r-- | test/files/neg/gadts1.check | 11 | ||||
-rwxr-xr-x | test/files/neg/gadts1.scala | 27 |
2 files changed, 38 insertions, 0 deletions
diff --git a/test/files/neg/gadts1.check b/test/files/neg/gadts1.check new file mode 100644 index 0000000000..8b3d6605ed --- /dev/null +++ b/test/files/neg/gadts1.check @@ -0,0 +1,11 @@ +gadts1.scala:15 error: type mismatch; + found : Test.this.NumTerm + required: Test.this.Term[a] + case NumTerm(n) => c.x = Double(1.0) + ^ +gadts1.scala:15 error: type mismatch; + found : Test.this.Double + required: a + case NumTerm(n) => c.x = Double(1.0) + ^ +two errors found 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) +} +} |