Expor um tipo dependente de caminho proveniente de um tipo singleton
Estou tentando fazer com que Scala encontre o tipo certo para um tipo dependente de caminho proveniente de um tipo singleto
Primeiro, aqui está o contêiner de tipo para o exemplo e uma instância:
trait Container {
type X
def get(): X
}
val container = new Container {
type X = String
def get(): X = ""
}
Eu posso ver a String nesta primeira tentativa (então eu já tenho um cenário de trabalho):
class WithTypeParam[C <: Container](val c: C) {
def getFromContainer(): c.X = c.get()
}
val withTypeParam = new WithTypeParam[container.type](container)
// good, I see the String!
val foo: String = withTypeParam.getFromContainer()
Mas quando não há parâmetro de tipo, isso não funciona mai
class NoTypeParam(val c: Container) {
def getFromContainer(): c.X = c.get()
}
val noTypeParam = new NoTypeParam(container)
// this does *not* compile
val bar: String = noTypeParam.getFromContainer()
lguém sabe por que o parâmetro type é necessári