aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/neg/t5762.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/untried/neg/t5762.scala')
-rw-r--r--tests/untried/neg/t5762.scala24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/untried/neg/t5762.scala b/tests/untried/neg/t5762.scala
new file mode 100644
index 000000000..fb73552b1
--- /dev/null
+++ b/tests/untried/neg/t5762.scala
@@ -0,0 +1,24 @@
+class D[-A]
+
+object Test {
+ var bippy: Boolean = true
+ def f1(x: D[Int with String]) = x match {
+ case _: D[Int] if bippy => 1
+ case _: D[String] => 2
+ }
+ // Correctly warns:
+ //
+ // a.scala:5: warning: non variable type-argument Int in type pattern D[Int] is unchecked since it is eliminated by erasure
+ // case _: D[Int] => 1
+ // ^
+ // a.scala:6: warning: non variable type-argument String in type pattern D[String] is unchecked since it is eliminated by erasure
+ // case _: D[String] => 2
+ // ^
+ // two warnings found
+
+ def f2(x: D[D[Int] with D[String]]) = x match {
+ case _: D[D[Int]] if bippy => 1
+ case _: D[D[String]] => 2
+ }
+ // No warnings!
+}