Sink {
type Result
def sink(result: Result): Unit
}
class IntSource extends Source {
override type Result = Int
override def source() = 1
}
class IntSink extends Sink {
override type Result = Int
override def sink(result: Result) = ()
}
val intsource: Source = new IntSource
val intsink: Sink = new IntSink
intsink.sink(intsource.source())как можно доказать что Source#Result это тоже самое что Sink#Result в этом случае ?
убрать тайп-аннотации у валов
ты уверен что тебе вообще нужен вложенный тип? trait Source[Result] попроще будет
Обсуждают сегодня