aboutsummaryrefslogtreecommitdiff
path: root/tests/patmat/patmat-ortype.scala
diff options
context:
space:
mode:
authorliu fengyun <liufengyunchina@gmail.com>2016-07-21 10:45:14 +0200
committerliu fengyun <liufengyunchina@gmail.com>2016-08-24 10:26:59 +0200
commitcc02243fbe8b7290265e1bdf540e4c2f256df199 (patch)
treebd83dcabb8de09fa48b9373b9431ef8c481da5ed /tests/patmat/patmat-ortype.scala
parent1a7618f32c6d8060c3a87ce633645440d500aa7a (diff)
downloaddotty-cc02243fbe8b7290265e1bdf540e4c2f256df199.tar.gz
dotty-cc02243fbe8b7290265e1bdf540e4c2f256df199.tar.bz2
dotty-cc02243fbe8b7290265e1bdf540e4c2f256df199.zip
add test set for exhaustivity and redundancy check
Diffstat (limited to 'tests/patmat/patmat-ortype.scala')
-rw-r--r--tests/patmat/patmat-ortype.scala40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/patmat/patmat-ortype.scala b/tests/patmat/patmat-ortype.scala
new file mode 100644
index 000000000..c7419acd3
--- /dev/null
+++ b/tests/patmat/patmat-ortype.scala
@@ -0,0 +1,40 @@
+object PatmatOrType {
+
+ def foo1(x: Int | Double) = x match {
+ case _: Int => true
+ case _: Double => true
+ }
+
+ def foo2a(x: Int | Double | String) = x match { // _: String not matched
+ case _: Int => true
+ case _: Double => true
+ }
+
+ def foo2b(x: Int | Double | String) = x match {
+ case _: Int => true
+ case _: (Double | String) => true
+ }
+
+ def foo3(x: Option[Int | Double | String]) = x match { // warning: None, Some(_: String) not matched
+ case Some(_: Int) => true
+ case Some(_: Double) => true
+ }
+
+ def foo4(x: Option[Int | Double | String]) = x match {
+ case Some(_: Int) => true
+ case Some(_: Double) => true
+ case Some(_: String) => true
+ case None => false
+ }
+
+ def foo5a(x: Option[Int | Double | String]) = x match {
+ case Some(_: (Int | Double)) => true
+ case Some(_: String) => true
+ case None => false
+ }
+
+ def foo5b(x: Option[Int | Double | String]) = x match { // warning: Some(_: String) not matched
+ case Some(_: (Int | Double)) => true
+ case None => false
+ }
+} \ No newline at end of file