Pracuję z dużą ilością kodu z typem lambdas w tej chwili i zauważyłem, że IntelliJ ostrzega mnie, że jest to "Zaawansowana funkcja językowa: połączenie refleksyjne".Czy koszt lambda typu Scala wywołania odblaskowego?
Przykładowy kod:
implicit def monoidApplicative[M](M: Monoid[M]) =
new Applicative[({ type f[x] = Const[M, x] })#f] {
def unit[A](a: => A): M = M.zero
override def apply[A,B](m1: M)(m2: M): M = M.op(m1, m2)
}
Uwaga: ja zorientować, że może to być błąd plugin IntelliJ Scala jak miałoby to sens, że lambdas typu są rozwiązywane w czasie kompilacji.
Nie znam odpowiedzi na twoje pytanie, ale jeśli mówisz, że masz wiele lambdasów w swoim kodzie, polecam sprawdzenie https://github.com/non/kind-projector –
Być może powinienem. Masz pomysł, czy wtyczka IJ's Scala ma na to wsparcie? –
Sam tego nie wykorzystałem, ale zgodnie z tym: http://blog.jetbrains.com/scala/2015/07/31/inline-refactoring-for-type-aliases-and-kind-projector-support/ powinien być wspierany od dłuższego czasu. –