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

Scala: сутенерство без шаблонов
Я широко использую шаблон Pimp my Library и как удалить шаблон. Например, скажем, у меня есть какая-то черта PrettyPrint: trait PrettyPrint { def prettyPrint: String } Если я хочу прокачать Int и Double, мне нужно написать такой код:...
998 просмотров

Компиляция макросов Scala 2.10-RC3 в проекте sbt
Я использую SBT для своего проекта и недавно решил добавить в него макросы. Итак, я последовал примерам из этого проекта: https://github.com/adamw/scala-macro-debug/tree/15fc8af48a6e7772c44b726513949a8ac9c9e3b7 В project/Build.scala есть...
302 просмотров
schedule 18.06.2023

Могу ли я использовать макросы Scala для интернализации внешнего DSL?
Я хотел бы реализовать внешний DSL, такой как SQL, в Scala с использованием макросов. Я уже видел документы о том, как реализовать внутренние DSL с помощью Scala . Кроме того, я недавно написал статью о как это можно сделать на Java , я сам....
1193 просмотров
schedule 10.07.2023

Макросы Scala и генерация кода
Учитывая простой источник примера, мне нужно иметь возможность создать конструктор копирования и метод неявного преобразования. Может кто-нибудь посоветовать, как добиться этого с помощью Scala 2.10 и новой функции макросов? import...
322 просмотров
schedule 18.12.2022

Доступ макросов к членам объекта, где определен макрос
Скажем, у меня есть трейт Foo , который я инстанцирую с начальным значением i . val foo = new Foo(6) // class Foo(i: Int) и позже я звоню secondMethod , который, в свою очередь, звонит myMacro foo.secondMethod(7) // def...
523 просмотров
schedule 01.05.2023

Вывод типа дерева в макросе scala
Как я могу попросить компилятор определить тип построенного дерева внутри макроса? Я нашел только Context.typeCheck, но он проверяет только типы, но не возвращает результат.
1190 просмотров
schedule 23.05.2022

Найти все возможные создания Sequences в дереве с помощью макросов Scala
Я хочу найти все возможные создания Sequences в дереве, используя макросы Scala. val l = List(1, 2) val v = Vector(1, 2) val ab = ArrayBuffer(1, 2) val s = Seq(1, 2) но следующее совпадение не работает: case Apply(TypeApply(Select(path,...
233 просмотров
schedule 29.06.2023

Scala Macro получает значение для имени термина
У меня есть следующий код: использование .scala object Test extends App { import Macros._ val f = 1 Macros.get(f) } макросы.scala import language.experimental.macros import scala.reflect.macros.Context object Macros { def...
1832 просмотров
schedule 25.08.2022

Можно ли заменить метод применения по умолчанию, сгенерированный для классов случаев, в макросе Scala?
Похоже, это не работает (используя 2.11.1 и макрорай 2.0.1). Я надеялся, что методы, сгенерированные классом case, будут либо подавлены, либо окажутся в дереве, чтобы я мог избавиться от него. Это жесткое ограничение? class evis extends...
310 просмотров

Макрос Scala для присвоенной метки значения в методе применения
Из объекта Naming ниже (адаптировано из ответа в макрос Scala получает закрывающую строку ), который собирает метку, связанную со значением, val x = Naming.apply("") x: String = x хотел бы изменить метод apply , чтобы он доставлял новый...
90 просмотров
schedule 23.11.2022

Scala: получить значение параметра по умолчанию: невозможно получить доступ к `apply$default$i` внутри объекта-компаньона
Я пишу макрос, который должен получить значение параметра конструктора по умолчанию. Этот ответ показывает, что это можно сделать, обратившись к сгенерированному компилятором методу apply$default$i в сопутствующем объекте, где apply — имя...
455 просмотров
schedule 21.02.2023

слишком мало списков аргументов для вызова макроса
Учитывая следующий код: case class JetDim(dimension: Int) { require(dimension > 0) } object JetDim { def build(dimension: Int): Int = macro JetDimMacro.apply } и макрос, который он вызывает: def apply(dimension: Int): Int = macro...
1293 просмотров
schedule 20.03.2023

Макрос Scala, который возвращает ClassTag абстрактного типа и абстрактного типа, зависящего от пути
Я пытался написать макрос, который генерирует теги классов абстрактных типов. Я обобщил код, представленный в https://stackoverflow.com/a/19502658/2859613 : object Macro { import scala.reflect.ClassTag import scala.reflect.macros.blackbox...
154 просмотров
schedule 10.10.2023

Scala: заменить метод во время выполнения
Допустим, у меня есть класс class Original { def originalMethod = 1 } Теперь, скажем, у меня есть экземпляр этого val instance = new Original Можно ли теперь что-то сделать с instance во время выполнения, чтобы заменить...
1807 просмотров

Как получить параметры/тип возвращаемого значения функции Scala?
У меня есть функция, и я хотел бы получить ее типы параметров и возвращаемый тип для использования в макросах Scala. scala> val fn = (a: String, b: Double) => 123 fn: (String, Double) => Int = <function2> scala> fn.getClass...
4018 просмотров

Получение параметров из аннотации макроса Scala
Итак, у меня есть аннотация к функции (DefDef). Эта аннотация имеет параметры. Однако я не понимаю, как получить параметры из конструктора. Пример использования: class TestMacro { @Foo(true) def foo(): String = "" foo } Вот код...
2157 просмотров
schedule 09.05.2024

Туннельный неявный параметр в тело функции вызова по имени
Рассмотрим следующий фрагмент кода: object Example { def run(f: => Unit): Unit = { implicit val i = 1 f } def caller(): Unit = run { todo } def todo(implicit i: Int): Unit =...
657 просмотров
schedule 22.10.2022

Условная компиляция блоков кода в Scala
Мне было интересно, есть ли способ условно исключить блок кода из компиляции в Scala с использованием флагов времени компиляции (то есть некоторого грубого эквивалента #define семейства C). Я знаю, что нет прямого аналога, и я не думаю, что макросы...
904 просмотров

макрос scala, который ссылается на этот объект
Я пытаюсь использовать макрос, чтобы устранить необходимость в scala для создания объекта функции, передаваемого вниз. Этот код используется во внутренних циклах нашей системы, и мы не хотим, чтобы внутренний цикл просто бесконечно выделял объекты....
411 просмотров
schedule 21.07.2023

Следствие плагина Gradle Scala для addCompilerPlugin в sbt
Как лучше всего добавить плагин компилятора Scala в задачу scalaCompile в Gradle?
1020 просмотров
schedule 11.06.2022