blob: 0887810c852dfb262c9d838c3e28c40133d5baf5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
trait A {
type Node <: NodeImpl;
implicit def coerce(n : NodeImpl) = n.self;
trait NodeImpl {
def self : Node;
}
}
trait B extends A {
type Parent <: ParentImpl;
implicit def coerce(p : ParentImpl) = p.self;
trait ParentImpl;
type Symbol;
trait SymbolImpl {
def scope : Int;
}
implicit def coerceSym(sym : Symbol) : SymbolImpl;
var s : Symbol = null;
val s_scope = s.scope;
}
|