blob: 55fd32d3bd89fc9231ad7fdeab1e8068ae8a48df (
plain) (
tree)
|
|
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 extends TreeDisplay { self: TreeDisplayFinal =>
def display(): Unit = { this.getRoot().display() }
}
}
|