Вопросы по теме 'scala-macro-paradise'
как определить псевдоним типа для более высокого типа с помощью аннотации макроса scala (предпочтительно с использованием квазикавычек)
Я разрабатываю аннотацию макроса scala, которая обогащает объекты различными определениями ( см. макрос формы воспроизведения ). Среди прочего я хочу, чтобы объект содержал псевдоним типа
type WFS = FS[_, _, _, _]
для различного количества...
361 просмотров
schedule
11.04.2022
Макрос Scala для печати кода?
Я хочу сделать что-то вроде этого:
def assuming[A](condition: => Boolean)(f: => A): A = {
require(condition, /* print source-code of condition */)
f
}
Пример использования:
def fib(n: Int) = n match { // yes, yes, I know this is...
1430 просмотров
schedule
01.11.2023
Используйте статическое объявление Java в реализации макроса
Я пытаюсь использовать статический метод в классе Java T в реализации макроса:
def macroImpl[T : c.WeakTypeTag](c: Context): c.Expr[ResultType] = {
import c.universe._
val tpe = weakTypeOf[T]
val someStaticMethod =...
145 просмотров
schedule
27.08.2023
Сохранить имена параметров метода в макросе scala
У меня есть интерфейс:
trait MyInterface {
def doSomething(usefulName : Int) : Unit
}
У меня есть макрос, который перебирает методы интерфейса и работает с именами методов и параметрами. Я получаю доступ к именам методов, делая что-то...
442 просмотров
schedule
27.06.2023
scala.meta.Lit.type не принимает параметры
Когда я запускаю следующее:
import scala.meta._
class Test {
val x = q"1"
}
Я получаю, что scala.meta.Lit.type не принимает параметры val x = q "1"
масштаб_2.11:1.8.0
рай_2.11.8:3.0.0-M7
Я пытаюсь заставить работать некоторые...
72 просмотров
schedule
07.08.2022
Когда выполняются аннотации макросов Scala? (макро рай)
Я попытался реализовать пример аннотаций макросов Scala, как описано в документации . . Мне удалось скомпилировать аннотации макросов до фактического проекта, который их использует, т. Е. @compileTimeOnly("enable macro paradise to expand macro...
235 просмотров
schedule
19.06.2022
Cats-tagless - ошибка аннотации макроса Scala
Я создал простой trait , используя cats-tagless lib:
@finalAlg
@autoFunctorK(true)
trait MyService[F[_]] {
def put(element: Element): F[Element]
def get(elementId: Id): F[Element]
def all(): F[List[Element]]
def delete(elementId:...
393 просмотров
schedule
04.02.2022
Повторное использование аннотаций на основе макросов Scala
Рассмотрим аннотацию на основе макросов Scala, такую как @ memoise из macmemo . Для аннотации требуются два аргумента: максимальный размер кеша и время жизни, например,
@memoize(maxSize = 20000, expiresAfter = 2 hours)
Допустим, вы...
102 просмотров
schedule
26.02.2023
Как проверки типов макросов Scala преобразуют идентификаторы в типы?
Я пытаюсь создать макрос аннотации, который можно применить только к определенному типу. Когда я запускаю свои тесты, я вижу ошибку типа не найден, когда аннотация применяется только к объектам верхнего уровня.
Мой код макроса:
trait...
186 просмотров
schedule
25.04.2023