diff options
author | liu fengyun <liufengyunchina@gmail.com> | 2016-07-21 10:45:14 +0200 |
---|---|---|
committer | liu fengyun <liufengyunchina@gmail.com> | 2016-08-24 10:26:59 +0200 |
commit | cc02243fbe8b7290265e1bdf540e4c2f256df199 (patch) | |
tree | bd83dcabb8de09fa48b9373b9431ef8c481da5ed /tests/patmat/patmat-ortype.scala | |
parent | 1a7618f32c6d8060c3a87ce633645440d500aa7a (diff) | |
download | dotty-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.scala | 40 |
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 |