Существует метод с этой подписью, что создает неявный параметр за сценой:Как использовать Predef.implicitly из макросов Scala?
class A {
def test[T: ClassTag](t: T) = println(t)
}
val a = new A
a.test(123456)
Так неявный параметр должен быть предусмотрен для вызова метода test
. Когда я делаю материализовать в РЕПЛ, дерево вызовов выглядит следующим образом:
Apply(
Apply(
Select(
Select(
newTermName("a"),
newTermName("test")
),
List(
Literal(Constant(123456))) // explicit method args
),
List(
Select(This(newTypeName("Predef")),
newTermName("implicitly"))) // implicit args
)
)
Я пытаюсь сделать этот вызов с помощью реализации макросов, но это не компилирует и дает мне: Predef не класс вшита. Я пробовал разные вещи без успеха и не нашел ни одного образца.
Вопрос в следующем: Как предоставить неявный аргумент методу с использованием макроса?
Спасибо, это работает. Я знаю о квазикварталах, но стараюсь свести к минимуму зависимости и глубже понять, что происходит. Все это макрос отлично. Благодаря! –