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