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] попроще будет
Обсуждают сегодня