summaryrefslogblamecommitdiff
path: root/test/files/pos/scoping3.scala
blob: f6d531dbb237f7fcfcd1d6900ef6091cfb3654c1 (plain) (tree)
1
           


















                                                                                  
 
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() { this.getRoot().display() }
  }
}