blob: 83e7f4cd1e8da09f80be8eb8b73b45ca2432d1d2 (
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
|
trait Parser {
type Node <: NodeImpl;
implicit def coerce(n : NodeImpl) = n.self;
trait NodeImpl {
def self : Node;
}
trait Link {
def from : NodeImpl;
}
}
trait ScalaParserAutoEdit extends Parser {
type Node <: NodeImpl;
implicit def coerce(node : NodeImpl) = node.self;
trait NodeImpl extends super[Parser].NodeImpl {
def self : Node;
def foo = {
var link : Link = null;
val xxx : NodeImpl = coerce(link.from);
val yyy : NodeImpl = link.from;
}
}
}
|