diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/bug2441.check | 4 | ||||
-rw-r--r-- | test/files/neg/bug2441.scala | 15 | ||||
-rw-r--r-- | test/files/pos/bug2441pos.scala | 8 |
3 files changed, 27 insertions, 0 deletions
diff --git a/test/files/neg/bug2441.check b/test/files/neg/bug2441.check new file mode 100644 index 0000000000..2c82e6a9f8 --- /dev/null +++ b/test/files/neg/bug2441.check @@ -0,0 +1,4 @@ +bug2441.scala:12: error: private class Y escapes its defining scope as part of type Some[B.Y] + override def f = Some(new B.Y) + ^ +one error found diff --git a/test/files/neg/bug2441.scala b/test/files/neg/bug2441.scala new file mode 100644 index 0000000000..6784ebb333 --- /dev/null +++ b/test/files/neg/bug2441.scala @@ -0,0 +1,15 @@ +trait X +trait A { + def f: Option[X] + def g: Option[X] +} +object B { + private class Y extends X { val y = 42 } +} +class B extends A { + private class Bippy + + override def f = Some(new B.Y) + override def g: Option[X] = Some(new B.Y) +} + diff --git a/test/files/pos/bug2441pos.scala b/test/files/pos/bug2441pos.scala new file mode 100644 index 0000000000..25eb2232c9 --- /dev/null +++ b/test/files/pos/bug2441pos.scala @@ -0,0 +1,8 @@ +abstract class A { + private def foo = List(1, 2) +} +trait B extends A { + private def foo = List("a", "b") + // However it compiles correctly if the type is given: + // private def foo: List[String] = List("a", "b") +} |