aboutsummaryrefslogblamecommitdiff
path: root/tests/untried/pos/scoping3.scala
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() }
  }
}