aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/patternUnsoundness.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos/patternUnsoundness.scala')
-rw-r--r--tests/pos/patternUnsoundness.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/pos/patternUnsoundness.scala b/tests/pos/patternUnsoundness.scala
new file mode 100644
index 000000000..4620f6c7d
--- /dev/null
+++ b/tests/pos/patternUnsoundness.scala
@@ -0,0 +1,17 @@
+object patternUnsoundness extends App {
+
+ class C[+T]
+
+ case class D[S](_s: S) extends C[S] {
+ var s: S = _s
+ }
+
+ val x = new D[String]("abc")
+ val y: C[Object] = x
+
+ y match {
+ case d @ D(x) => d.s = new Integer(1)
+ }
+
+ val z: String = x.s // ClassCast exception
+}