blob: 08f5b2a6ebc5d0c9f6fc5ac8fcd5f61db7d32ef9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/* Here's a fragment of a Scala encoding for the Keris module system;
** the compiler claims:
**
** S5.scala:28: value n in class N of type N.this._N.n
** cannot override value n in class M of type M.this._N.n
** val system = new M() with N() {}
** ^
** To me it seems like the code is perfectly fine...
*/
abstract class M() {
val _N: N;
val n: _N.n;
val _M: M = this;
val m: _M.m = new _M.m();
class m() {
// module body of M
}
}
abstract class N() {
val _N: N = this;
val n: _N.n = new _N.n();
val _M: M;
val m: _M.m;
class n() {
// module body of N
}
}
object O {
val system = new M() with N() {}
}
|