Как преобразовать класс X[A] в аргумент метода def f(x:X[A])?

Я пытаюсь создать класс декоратора из существующего класса X:

class X[A]{....}

... используя scala.meta, сгенерируйте этот код....

class XDecorator[A](enclosed : X[A]) {...}

Так что все в порядке, за исключением аргумента конструктора "заключен в: X[A]". Я проанализировал ожидаемый код с помощью scala.meta и обнаружил, что закрытый decl является экземпляром Type.Apply.TypeApplyImpl, но для его построения мне нужно использовать квази t"$tname[..$tpesnel] . Tpesnel. является списком [тип]. Таким образом, он требует типа. Но "A" не является типом. Что я знаю для "A" из объявления класса X, так это то, что это scala.meta.Type.Param. Как я могу преобразовать параметр типа для параметра типа вызова метода? Мне нужно преобразовать его, потому что это единственное место, где я получаю decl "A" из существующего класса X.

0 ответов

Другие вопросы по тегам