File: S8.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (19 lines) | stat: -rw-r--r-- 460 bytes parent folder | download | duplicates (8)
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?
}