1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class RefinementAndExistentials {
type Foo = {
type Dingus
def bippy(x: Int): String
def dingus(): String
}
type Bar = {
type Dingus <: T forSome { type T <: String }
}
def f(x: Foo) = 51
def g(x: T forSome { type T <: String }) = x
def h(x: Float): { def quux(x: Int, y: Int): Int } = new {
def quux(x: Int, y: Int) = 55
}
def hh(x: Float) = new { def quux(x: Int, y: Int) = 55 }
def j(x: Int): Bar = sys.error("")
def k(): AnyRef { type Dingus <: T forSome { type T <: String } } = sys.error("")
}
|