Вопросы по теме '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 просмотров
schedule
13.03.2024
Макросы 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 просмотров
schedule
03.11.2023
Eclipse: проблемы с неявными преобразованиями и аннотациями макросов в Scala
Я использую macroparadise для создания методов и классов случаев в моем проекте (сами макросы определены в отдельном проекте от моих основных файлов, где я их использую).
Все компилируется и работает, как и ожидалось, но Eclipse не может разрешить...
192 просмотров
schedule
17.03.2024
Макросы Scala: генерировать код на основе содержимого файла
Я хотел бы создать классы scala на основе некоторых файлов. Размещение файлов не имеет значения (это может быть папка ресурсов или файлы могут быть размещены рядом с моими исходными файлами scala).
Как я могу прочитать их при выполнении макроса...
509 просмотров
schedule
27.01.2024
Почему это не то же самое?
Я новичок в 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 просмотров
schedule
23.12.2023
Извлечь 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 просмотров
schedule
16.10.2022