summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/files/neg/t0152.scala13
-rwxr-xr-xtest/files/pos/listpattern.scala8
2 files changed, 21 insertions, 0 deletions
diff --git a/test/files/neg/t0152.scala b/test/files/neg/t0152.scala
new file mode 100755
index 0000000000..eef69bf767
--- /dev/null
+++ b/test/files/neg/t0152.scala
@@ -0,0 +1,13 @@
+class Value[+T](x: T) {
+ def value = x
+}
+
+trait PlusOne extends Value[Int] {
+ override def value = super.value + 1
+}
+
+object Test extends Application {
+ object boom extends Value[java.lang.String]("foo") with PlusOne
+
+ println(boom.value) // class cast exception!
+}
diff --git a/test/files/pos/listpattern.scala b/test/files/pos/listpattern.scala
new file mode 100755
index 0000000000..47145bf037
--- /dev/null
+++ b/test/files/pos/listpattern.scala
@@ -0,0 +1,8 @@
+trait Value {}
+case class FloatValue(x: Double) extends Value
+object Test {
+ def applyNumeric(op: (Double, Double) => Double):
+ PartialFunction[List[Value], Value] = {
+ case List(FloatValue(x), FloatValue(y)) => FloatValue(op(x, y))
+ }
+}