У меня есть макрос Def Scala (2.10) с аргументом x. Это тело выглядит следующим образом:Соответствие родовых типов в макросах Scala
if (x.actualType =:= typeOf[generic.Type[String]]) {
// branch 1: do something with x
}
else {
// branch 2: do something else
}
Реализация generic.Type самого класса не доступна, и его реализация не может быть изменена. Теперь я хочу, чтобы этот макрос вызывал ветвь 1 не только для generic.Type [String] s, но для generic.Type [T], где T - любой тип.
Есть ли канонический способ достижения этого? Или это единственный способ сделать это вручную с помощью AST?
Что такое подпись макроса? – Ashalynd
Это def def (c: Контекст) (x: c.Expr [Any]): c.Expr [Any] – fishlips