diff options
author | Paul Phillips <paulp@improving.org> | 2010-11-30 17:57:15 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-11-30 17:57:15 +0000 |
commit | 51e4a6a351a64a1bff995e1b5fefb88c7e2430eb (patch) | |
tree | 4253b1cd295417b235de10df0484861397c4eaec /test/files | |
parent | 81f38907b838caa64d26b4ea49efe938a3d0673f (diff) | |
download | scala-51e4a6a351a64a1bff995e1b5fefb88c7e2430eb.tar.gz scala-51e4a6a351a64a1bff995e1b5fefb88c7e2430eb.tar.bz2 scala-51e4a6a351a64a1bff995e1b5fefb88c7e2430eb.zip |
Parser relaxation so that one can name the type...
Parser relaxation so that one can name the type variables in a
constructor pattern match: this is a prerequisite to realizing the full
potential of gadts. (Nothing new works here however.) No review.
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/neg/gadts1.check | 10 | ||||
-rw-r--r-- | test/files/neg/gadts1.scala | 8 |
2 files changed, 16 insertions, 2 deletions
diff --git a/test/files/neg/gadts1.check b/test/files/neg/gadts1.check index 4c91a3bcf8..44d2b114d6 100644 --- a/test/files/neg/gadts1.check +++ b/test/files/neg/gadts1.check @@ -3,4 +3,12 @@ gadts1.scala:15: error: type mismatch; required: a case NumTerm(n) => c.x = Double(1.0) ^ -one error found +gadts1.scala:20: error: class Cell of type Test.Cell does not take type parameters. + case Cell[a](x: Int) => c.x = 5 + ^ +gadts1.scala:20: error: type mismatch; + found : Int(5) + required: a + case Cell[a](x: Int) => c.x = 5 + ^ +three errors found diff --git a/test/files/neg/gadts1.scala b/test/files/neg/gadts1.scala index 07200ff7aa..08403e6eec 100644 --- a/test/files/neg/gadts1.scala +++ b/test/files/neg/gadts1.scala @@ -10,10 +10,16 @@ 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 = +def f[a](t:Term[a], c:Cell[a]): Unit = { t match { case NumTerm(n) => c.x = Double(1.0) } + t match { + // presently testing that this gets past the parser: eventually + // it should actually work. + case Cell[a](x: Int) => c.x = 5 + } +} val x:Term[Number] = NumTerm(Int(5)) |