summaryrefslogtreecommitdiff
path: root/test/files/neg/t8430.check
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-03-21 11:54:02 +0100
committerJason Zaugg <jzaugg@gmail.com>2014-03-24 10:50:00 +0100
commit4a16b044baf8377e04624207202e83c78a0a49cf (patch)
tree7794c86def6398d8d28ef74f7314f3390b6a1310 /test/files/neg/t8430.check
parentbcf24ec9ba07408ad9e8745135cc941ac3e76289 (diff)
downloadscala-4a16b044baf8377e04624207202e83c78a0a49cf.tar.gz
scala-4a16b044baf8377e04624207202e83c78a0a49cf.tar.bz2
scala-4a16b044baf8377e04624207202e83c78a0a49cf.zip
SI-8430 Less non-determinism in patmat exhautiveness warnings
Another mole whacked on the head by using `LinkedHashMap`. Caution: `LinkedHashMap` doesn't preserve its runtime type if you map through the generic interface. I've noted this gotcha as SI-8434. I've structured this patch to enforce that concrete collection with types, which is a good idea anyway. My method to track this down was to place breakpoints in `Hash{Map,Set}`.{foreach,iterator}` to see where that was used from within pattern match translation. This approach was drastically faster than my previous rounds of whack-a-mole. The counter-examples are still a bit off; I'm going to merge that aspect of this ticket with SI-7746, in which we've pinpointed the culpable part of the implementation, but haven't had success in fixing the bug.
Diffstat (limited to 'test/files/neg/t8430.check')
-rw-r--r--test/files/neg/t8430.check27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/files/neg/t8430.check b/test/files/neg/t8430.check
new file mode 100644
index 0000000000..7c6a73ce53
--- /dev/null
+++ b/test/files/neg/t8430.check
@@ -0,0 +1,27 @@
+t8430.scala:15: warning: match may not be exhaustive.
+It would fail on the following inputs: ??, LetC, LetF, LetL(IntLit), LetP
+ (tree: Tree) => tree match {case LetL(CharLit) => ??? }
+ ^
+t8430.scala:16: warning: match may not be exhaustive.
+It would fail on the following inputs: ??, LetC, LetF, LetL(IntLit), LetP
+ (tree: Tree) => tree match {case LetL(CharLit) => ??? }
+ ^
+t8430.scala:17: warning: match may not be exhaustive.
+It would fail on the following inputs: ??, LetC, LetF, LetL(IntLit), LetP
+ (tree: Tree) => tree match {case LetL(CharLit) => ??? }
+ ^
+t8430.scala:18: warning: match may not be exhaustive.
+It would fail on the following inputs: ??, LetC, LetF, LetL(IntLit), LetP
+ (tree: Tree) => tree match {case LetL(CharLit) => ??? }
+ ^
+t8430.scala:19: warning: match may not be exhaustive.
+It would fail on the following inputs: ??, LetC, LetF, LetL(IntLit), LetP
+ (tree: Tree) => tree match {case LetL(CharLit) => ??? }
+ ^
+t8430.scala:20: warning: match may not be exhaustive.
+It would fail on the following inputs: ??, LetC, LetF, LetL(IntLit), LetP
+ (tree: Tree) => tree match {case LetL(CharLit) => ??? }
+ ^
+error: No warnings can be incurred under -Xfatal-warnings.
+6 warnings found
+one error found