Вопросы по теме 'scala-macros'

Можно ли определить макрос с переменными параметрами и получить тип для каждого параметра?
Ниже приведена очевидная вариационная функция: def fun(xs: Any*) = ??? Мы можем определить макрос аналогичным образом: def funImpl(c: Context)(xs: c.Expr[Any]*) = ??? fun(1,"1",1.0) Но в этом случае все аргументы имеют тип Any ....
651 просмотров
schedule 16.11.2022

Макрос Scala: переписать частичную функцию в соответствие
Я хотел бы переписать partial function в выражение match . //macro and impl def pfRewrite(pf: PartialFunction[Int, Int]) = macro ResponderImpl.pfRewriteImpl def pfRewriteImpl(c: Context)(pf: c.Expr[PartialFunction[Int, Int]]) = { import...
282 просмотров
schedule 05.02.2024

Как добавить конструктор без аргументов в класс case Scala с аннотацией макроса?
Я пытаюсь ответить этот вопрос . Вместо того, чтобы писать: case class Person(name: String, age: Int) { def this() = this("",1) } Я думал, что буду использовать аннотации макросов, чтобы расширить его: @Annotation case class...
1992 просмотров

Макросы Scala, относящиеся к типу члена
У меня есть трейт с типом члена, и я хочу иметь макрос с сигнатурой, содержащий этот тип: trait Foo { class Bar[A] { ... } def baz[A](x: Bar[A]): Bar[A] = macro bazImpl[A] def bazImpl[A: c.WeakTypeTag](c: blackbox.Context)(x:...
132 просмотров

Eclipse: проблемы с неявными преобразованиями и аннотациями макросов в Scala
Я использую macroparadise для создания методов и классов случаев в моем проекте (сами макросы определены в отдельном проекте от моих основных файлов, где я их использую). Все компилируется и работает, как и ожидалось, но Eclipse не может разрешить...
192 просмотров

Макросы Scala: генерировать код на основе содержимого файла
Я хотел бы создать классы scala на основе некоторых файлов. Размещение файлов не имеет значения (это может быть папка ресурсов или файлы могут быть размещены рядом с моими исходными файлами scala). Как я могу прочитать их при выполнении макроса...
509 просмотров

Почему это не то же самое?
Я новичок в scala, и у меня есть два фрагмента кода: private val uploadImageTypeValidator = validator[(UploadImageRequest, DriverSession)] { case (r, s) => val sessionType = SessionType.fromValue(s.`type`) r.`type` is...
148 просмотров
schedule 23.03.2024

Сделать класс Scala расширяет типаж / абстрактный класс макросами
Проблема: Я хочу сделать аннотированный класс подклассом другого класса с помощью макроса scala. Что у меня есть: Обертка для полей: class Field(fieldType: DbModelFieldType, fieldName: String) Абстрактный класс (базовый класс для всех...
389 просмотров

Извлечь ClassSymbols для границ параметров метода
Я пытаюсь извлечь ClassSymbol s для всех границ параметров типа метода. Решение, которое я придумал: Реализация аннотации макроса: @compileTimeOnly("Compile-time only annotation") class classSyms extends StaticAnnotation { def...
41 просмотров
schedule 14.09.2022

Использование ClassSymbol в квазицитатах
У меня есть ClassSymbol и я хочу сгенерировать метод без аргументов, выдающий ??? . Вот мои попытки: Предположим, что object Test — это тип, которого у нас есть ClassSymbol . Я. val sym = //the ClassSymbol val tpe =...
52 просмотров