blob: 4ebc7f6378f6eab3489fb9624bad60bd7384964b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
object CI {
trait TreeDisplay {
type TreeNode <: ITreeNode;
trait ITreeNode {
def display(): unit;
}
}
trait TreeDisplayExp {
def getRoot(): TreeNode;
type TreeNode <: ITreeNodeExp;
trait ITreeNodeExp {}
}
trait TreeDisplayFinal extends TreeDisplay with TreeDisplayExp {
type TreeNode <: ITreeNode with ITreeNodeExp;
}
abstract class SimpleTreeDisplay: TreeDisplayFinal extends
TreeDisplay {
def display() = { this.getRoot().display(); }
}
}
|