Часто нет необходимости уделять внимание неявным аргументам в Scala, но иногда очень полезно понять, как компилятор автоматически предоставляет их. К сожалению, это понимание, похоже, трудно получить!
Есть ли общий метод для обнаружения того, как был предоставлен неявный параметр в данном фрагменте кода?
В идеале, интеграция IDE в один прекрасный день обеспечит эту информацию каким-то образом, но я ожидаю, что сейчас мне придется копать глубже. Есть ли способ попросить компилятор объяснить, какое именно неявное определение он выбирает в любой точке? Может ли это быть расшифровано косвенно из другого выхода компилятора?
В качестве примера я хотел бы узнать, как работать самостоятельно, где приходит аргумент implicit bf: CanBuildFrom[Repr, B, That]
в TraversableLike.map
, без чтения таких вопросов, как этот Переполнение стека!