diff options
Diffstat (limited to 'test')
-rwxr-xr-x | test/files/neg/t0152.scala | 13 | ||||
-rwxr-xr-x | test/files/pos/listpattern.scala | 8 |
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)) + } +} |