summaryrefslogtreecommitdiff
path: root/test/files/pos/S8.scala
blob: 50f1df27a23c46714ded83750f691d6872126789 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* I believe this code is correct, but the compiler rejects it:
**
** S8.scala:18: type mismatch;
** found   : M.x.A
** required: M.x.a.B
**        val y: x.a.B = new x.A(); //correct?
**                              ^
** For a given value x of type S8, type x.A should be
** a subtype of x.a.B.
*/
class S8() {
    val a: S8 = this;
    class A() extends a.B() {}
    class B() {}
}
object M {
    val x = new S8();
    val y: x.a.B = new x.A(); //correct?
}