diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-04-27 10:37:56 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-04-27 10:37:56 -0700 |
commit | 3da1abe3a2e2752588ca8e2c7e889a321dae2037 (patch) | |
tree | 6357dcd07c064d80059283db67fe87c8a0bf8519 /test/files/neg | |
parent | 0a23852d9b434d7aef734687474b1c3e79881a9b (diff) | |
parent | 62713964b96f64f9c0fd0070c89aa6571679856d (diff) | |
download | scala-3da1abe3a2e2752588ca8e2c7e889a321dae2037.tar.gz scala-3da1abe3a2e2752588ca8e2c7e889a321dae2037.tar.bz2 scala-3da1abe3a2e2752588ca8e2c7e889a321dae2037.zip |
Merge pull request #2439 from retronym/ticket/7369
SI-7369 Avoid spurious unreachable warnings in patterns
Diffstat (limited to 'test/files/neg')
-rw-r--r-- | test/files/neg/t7369.check | 13 | ||||
-rw-r--r-- | test/files/neg/t7369.flags | 1 | ||||
-rw-r--r-- | test/files/neg/t7369.scala | 43 |
3 files changed, 57 insertions, 0 deletions
diff --git a/test/files/neg/t7369.check b/test/files/neg/t7369.check new file mode 100644 index 0000000000..4f101e145a --- /dev/null +++ b/test/files/neg/t7369.check @@ -0,0 +1,13 @@ +t7369.scala:6: error: unreachable code + case Tuple1(X) => // unreachable + ^ +t7369.scala:13: error: unreachable code + case Tuple1(true) => // unreachable + ^ +t7369.scala:31: error: unreachable code + case Tuple1(X) => // unreachable + ^ +t7369.scala:40: error: unreachable code + case Tuple1(null) => // unreachable + ^ +four errors found diff --git a/test/files/neg/t7369.flags b/test/files/neg/t7369.flags new file mode 100644 index 0000000000..e8fb65d50c --- /dev/null +++ b/test/files/neg/t7369.flags @@ -0,0 +1 @@ +-Xfatal-warnings
\ No newline at end of file diff --git a/test/files/neg/t7369.scala b/test/files/neg/t7369.scala new file mode 100644 index 0000000000..87ddfe98b7 --- /dev/null +++ b/test/files/neg/t7369.scala @@ -0,0 +1,43 @@ +object Test { + val X, Y = true + (null: Tuple1[Boolean]) match { + case Tuple1(X) => + case Tuple1(Y) => + case Tuple1(X) => // unreachable + case _ => + } + + (null: Tuple1[Boolean]) match { + case Tuple1(true) => + case Tuple1(false) => + case Tuple1(true) => // unreachable + case _ => + } +} + + +sealed abstract class B; +case object True extends B; +case object False extends B; + +object Test2 { + + val X: B = True + val Y: B = False + + (null: Tuple1[B]) match { + case Tuple1(X) => + case Tuple1(Y) => + case Tuple1(X) => // unreachable + case _ => + } +} + +object Test3 { + (null: Tuple1[B]) match { + case Tuple1(null) => + case Tuple1(True) => + case Tuple1(null) => // unreachable + case _ => + } +} |