diff options
author | Paul Phillips <paulp@improving.org> | 2013-01-25 08:13:02 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-01-25 08:13:02 -0800 |
commit | b49eaefd816a80ad7d04b150c16f8e76cfbdb03e (patch) | |
tree | e06b1f3afd4266ec1078bc136ce6e274be746a2e /test/files/neg | |
parent | 5e2821caef2f49185338c01a7cb8a4e5e0155b7a (diff) | |
parent | cbd0205999d19e378f9f7ac8ca685a134862cf47 (diff) | |
download | scala-b49eaefd816a80ad7d04b150c16f8e76cfbdb03e.tar.gz scala-b49eaefd816a80ad7d04b150c16f8e76cfbdb03e.tar.bz2 scala-b49eaefd816a80ad7d04b150c16f8e76cfbdb03e.zip |
Merge pull request #1928 from retronym/ticket/6902
SI-6902 Check unreachability under @unchecked
Diffstat (limited to 'test/files/neg')
-rw-r--r-- | test/files/neg/t6902.check | 10 | ||||
-rw-r--r-- | test/files/neg/t6902.flags | 1 | ||||
-rw-r--r-- | test/files/neg/t6902.scala | 23 |
3 files changed, 34 insertions, 0 deletions
diff --git a/test/files/neg/t6902.check b/test/files/neg/t6902.check new file mode 100644 index 0000000000..8ad7fd37f9 --- /dev/null +++ b/test/files/neg/t6902.check @@ -0,0 +1,10 @@ +t6902.scala:4: error: unreachable code + case Some(b) => 3 // no warning was emitted + ^ +t6902.scala:9: error: unreachable code + case Some(b) => 3 // no warning was emitted + ^ +t6902.scala:21: error: unreachable code + case 1 => 3 // crash + ^ +three errors found diff --git a/test/files/neg/t6902.flags b/test/files/neg/t6902.flags new file mode 100644 index 0000000000..e8fb65d50c --- /dev/null +++ b/test/files/neg/t6902.flags @@ -0,0 +1 @@ +-Xfatal-warnings
\ No newline at end of file diff --git a/test/files/neg/t6902.scala b/test/files/neg/t6902.scala new file mode 100644 index 0000000000..ce5ff8b6fb --- /dev/null +++ b/test/files/neg/t6902.scala @@ -0,0 +1,23 @@ +object Test { + Some(Some(1)) collect { + case Some(a) => 2 + case Some(b) => 3 // no warning was emitted + } + + (Some(1): @ unchecked) match { + case Some(a) => 2 + case Some(b) => 3 // no warning was emitted + } + + // A variation of SI-6011, which eluded the fix + // in 2.10.0. + // + // duplicate keys in SWITCH, can't pick arbitrarily one of them to evict, see SI-6011. + // at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:50) + // at scala.tools.nsc.Global.abort(Global.scala:249) + // at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder$jcode$.emitSWITCH(GenASM.scala:1850) + ((1: Byte): @unchecked @annotation.switch) match { + case 1 => 2 + case 1 => 3 // crash + } +} |