blob: 233476f658d31dd550e21758ab2f576ddd1e9f32 (
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
|
trait Base {
trait AssignArrow {
type T <: Ti0;
trait Ti0;
}
abstract class Arrow extends AssignArrow;
val arrow : Arrow;
}
trait Ext0 extends Base {
trait AssignArrow extends super.AssignArrow {
type T <: Ti1;
trait Ti1 extends super.Ti0;
}
}
trait Ext1 extends Base {
trait Arrow extends super.Arrow {
type T <: Ti2;
trait Ti2 extends super.Ti0;
trait TiXX extends Ti2;
}
val arrow : Arrow;
}
trait Composition extends Ext0 with Ext1 {
object arrow0 extends Arrow with AssignArrow {
type T = TiC
trait TiC extends super[Arrow].Ti2 with super[AssignArrow].Ti1;
}
}
|