У меня есть ClassSymbol
и я хочу сгенерировать метод без аргументов, выдающий ???
. Вот мои попытки:
Предположим, что object Test
— это тип, которого у нас есть ClassSymbol
.
Я.
val sym = //the ClassSymbol
val tpe = tq"$sym.type"
q"def foo(): $tpe = ???"
Результат:
[error] stable identifier required, but Test.type found.
II.
val sym = //the ClassSymbol
val tpe = tq"${sym.name}.type"
q"def foo(): $tpe = ???"
Результат:
[error] found : c.universe.TypeName
[error] required: c.universe.TermName
[error] val tpe = tq"${sym.name}.type"
III.
val sym = //the ClassSymbol
val tpe = tq"${TermName(sym.name.toString)}.type"
q"def foo(): $tpe = ???"
Результат:
Compiles successfully
Так что я остановился на методе III, который выглядит довольно пугающе.
Есть ли собственный способ использовать ClassSymbol
в квазицитатах?