aboutsummaryrefslogtreecommitdiff
path: root/tests/patmat/patmat-ortype.scala
diff options
context:
space:
mode:
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