es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: SCALA-MACROS

Recuperando el tipo Singleton de un tipo Higher Kinded en Scala 3

Estoy contribuyendo a una biblioteca de Scala 3 que realiza verificación de tipo en tiempo de compilación y me he encontrado con el siguiente problema. Tengo una jerarquía de tipos como esta: trait Match[V <: String] type Alphanumeric = Match[“^[a-zA-Z0-9]+”] trait RegexChecker[MatchType] { inline def checkRegex(text: String): Boolean } inline . . . Read more

¿Cómo obtener el cuerpo de la inicialización de variable del ámbito externo en macros de Scala 3?

Suponga que tengo este código para extraer el código que inicializa una variable: “`def extractBodyImpl[T: Type](expr: Expr[T])(using Quotes) = import quotes.reflect._ expr.asTerm.underlyingArgument match case ident @ Ident() => ident.symbol.tree match case ValDef(,,rhs) => println(rhs) case DefDef(,,,rhs) => println(rhs) ‘{ () } inline def extractBody[T](inline expr: T) = ${ extractBodyImpl(‘expr) } . . . Read more

Distinga los Enum de Scala-3 de los Traits Sellados.

¿Es posible distinguir entre las enum de Scala-3 y los traits sellados utilizando Mirrors o incluso Macros? definir transparent inline def isScalaEnum[A]: Boolean = ${ isScalaEnumImpl[A] } privado def isScalaEnumImpl[A: Type](using q: Quotes): Expr[Boolean] = ??? Por ejemplo, ¿cómo se implementa el macro anterior? sealed trait T case class A(x: . . . Read more