Не удалось найти неявное значение для параметра, определенного в сопутствующем объекте - PullRequest
0 голосов
/ 28 августа 2018

В приведенном ниже примере минимального класса типов scala 2.12.6 / sbt 1.2.1 жалуется could not find implicit value for parameter tc: tryout.Tryout.TypeClassTrait[Int]. Если я раскомментирую строку println, она скомпилируется. Я ожидал, что это сработает без println, потому что я импортирую все из объекта-компаньона.

Это ошибка или особенность? (Кстати: установка скалярного параметра -Xlog-implicits не принесла ничего полезного.)

trait Tryout {
  import Tryout._
//  println(IntTypeClass) // uncomment this line to make compile work
  show(3)                 // compile fails here
}
object Tryout {
  trait TypeClassTrait[T] {
    def show(t: T): Unit
  }
  implicit object IntTypeClass extends TypeClassTrait[Int] {
    override def show(t: Int): Unit = println(t)
  }
  def show[T](t: T)(implicit tc: TypeClassTrait[T]): Unit = tc.show(t)
}
...