blob: 7f45723ce247f8bf8e546a6b59203fab88305b20 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
// $Id$
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 requires TreeDisplayFinal extends
TreeDisplay {
def display() = { this.getRoot().display(); }
}
}
|