summaryrefslogtreecommitdiff
path: root/test/files/neg/t1878.check
diff options
context:
space:
mode:
authorSom Snytt <som.snytt@gmail.com>2012-04-22 02:58:26 -0700
committerSom Snytt <som.snytt@gmail.com>2012-04-26 11:44:39 -0700
commit9d925a30c73ee5856c83d3caab124f7dbeaa85a8 (patch)
treed7a14c7d0466435523452ed2cc88fe3d82c9e9b6 /test/files/neg/t1878.check
parent3c9c18ddccc17c2b0e62195315ba2abb72d3b761 (diff)
downloadscala-9d925a30c73ee5856c83d3caab124f7dbeaa85a8.tar.gz
scala-9d925a30c73ee5856c83d3caab124f7dbeaa85a8.tar.bz2
scala-9d925a30c73ee5856c83d3caab124f7dbeaa85a8.zip
SI-5702 Pattern parser halts on star
In patterns, the parser halts when it sees stars. This means it does not handle infix notation for a case class named "*". This patch uses lookahead to decide whether to parse '_' '*' as a sequence pattern or as the start of infix. (For both normal and error cases, the tokens are always consumed immediately.) Error messages are improved for _* (as a help to learners) and slightly improved recovery helps the parse continue. The entry point for XML patterns is now distinct; otherwise, the change is local to pattern3-simplepattern; the entry point for simplepattern() is unchanged because it is commented "hook for IDE."
Diffstat (limited to 'test/files/neg/t1878.check')
-rw-r--r--test/files/neg/t1878.check24
1 files changed, 5 insertions, 19 deletions
diff --git a/test/files/neg/t1878.check b/test/files/neg/t1878.check
index b47367e12c..ac2071c3d8 100644
--- a/test/files/neg/t1878.check
+++ b/test/files/neg/t1878.check
@@ -1,21 +1,7 @@
-t1878.scala:3: error: _* may only come last
+t1878.scala:3: error: bad use of _* (a sequence pattern must be the last pattern)
val err1 = "" match { case Seq(f @ _*, ',') => f }
- ^
-t1878.scala:3: error: scrutinee is incompatible with pattern type;
- found : Seq[A]
- required: String
- val err1 = "" match { case Seq(f @ _*, ',') => f }
- ^
-t1878.scala:3: error: not found: value f
- val err1 = "" match { case Seq(f @ _*, ',') => f }
- ^
-t1878.scala:3: error: value _2 is not a member of object Seq
- val err1 = "" match { case Seq(f @ _*, ',') => f }
- ^
-t1878.scala:9: error: _* may only come last
+ ^
+t1878.scala:9: error: bad use of _* (a sequence pattern must be the last pattern)
val List(List(_*, arg2), _) = List(List(1,2,3), List(4,5,6))
- ^
-t1878.scala:13: error: _* may only come last
- case <p> { _* } </p> =>
- ^
-6 errors found
+ ^
+two errors found