scala-macros 相关问题

Scala宏是Scala的工具 - 一种通用编程语言 - 允许在Scala语言中针对Scala语法树进行编译时元编程。

Scala 3 宏无法在范围内找到给定的

我正在尝试在 Scala 3 中编写一个宏,它将解析案例类中定义的类型,然后查找这些类型的给定/隐式方法。 下面是宏的代码。 导入 scala....

回答 1 投票 0

scala3 宏可以在现有块周围引入隐式值吗?

我正在开发一个用于测试的库,我希望能够拥有可以在特定范围内重新定义的变量。这是受到 rspec 中 let 的启发。 我有一些工作,通过

回答 1 投票 0

Scala 反射:如何在运行时定义案例类,然后引用它?

我想在运行时定义一个案例类,例如 val tb = Universe.runtimeMirror(getClass.getClassLoader).mkToolBox() val myClass: ClassDef = q"案例类身份验证(电子邮件:

回答 2 投票 0

Scala 3 宏:如何通过方法的 `Symbol` 获取方法的返回类型?

在 Scala 3 宏中,给定一个方法的 Symbol,获取该方法的返回类型的最直接方法是什么? 更具体地说,假设我有一个类型名称 Foo 对应于 t...

回答 1 投票 0

Scala 3 宏:在编译时“动态”实例化单例对象

我正在尝试创建一个使用某些对象的宏。 假设我有以下定义: 特质 Foo: def doStuff(): 单位 // 在其他文件中 对象 Bar 扩展了 Foo: def doStuff() =...

回答 1 投票 0

在Scala 3宏中使用upickle读取

尝试编写一个通用宏,用于使用 Scala 3 中读取的 uPickle 反序列化案例类: inline def parseJson[T:Type](x: Expr[String])(使用引号): Either[String, Expr[T]] = '{ 尝试 对...

回答 1 投票 0

Scala 3 宏引用:何时使用 apply 与 copy

我正在尝试学习如何使用新的 Scala 3 Quotes API 编写宏。在此 API 中,各种 AST 元素通常定义了两种方法来引入它们:apply 和 copy,其中 copy 采用非

回答 1 投票 0

如何正确从TypeLambda中提取类型参数?

我在 Scala 3 中有一个宏处理类型,该宏是我在机身表面库中面临的问题的最小化重现。该宏显然工作正常,但一旦我添加选项 -Xcheck-

回答 1 投票 0

宏展开时异常:类型T不是类,玩json

我面临这个错误: 宏展开时出现异常: scala.ScalaReflectionException:类型 T 不是类 在 scala.reflect.api.Symbols$SymbolApi.asClass(Symbols.scala:284) 在 scala.re...

回答 1 投票 0

如何使用宏在 scala 中生成新的单例文字类型

我需要在 scala 2.13 中的每个宏调用上生成随机signleton类型 我尝试了类似的方法,但无法更改宏定义返回类型 def randomSingletonInt: Int = 宏 randomImpl...

回答 1 投票 0

Scala3:通过元编程创建类型?

我正在使用 scala3 进行编码,利用编程结构类型。 结构类型恰好模仿现有的案例类: 他们的定义是纯粹的样板, 因此,手工制作的诱惑......

回答 3 投票 0

在宏生成期间获取类型的隐式值

宏根据隐式提供的所有属性值生成案例类的空实例。 解决方案的当前状态可以在 GH 上找到: https://github.com/atais/empty/blob/

回答 1 投票 0

如何挂载 izumi.reflect.Tag?

我一直在使用 izumi.reflect.Tag 来保存类型信息,而且效果很好。除非我在某个时候丢失了该类型信息,然后我不知道如何恢复它。这就是我想做的: 案例

回答 1 投票 0

如何在 Scala 3 宏中动态创建枚举值?

我正在动态创建一个枚举值。我有一个枚举类型(不是对象本身)和一个表示有效值的字符串,例如“红色”代表颜色。红色。 // T 是颜色(枚举)。我已经

回答 1 投票 0

Scala 3:为什么 `inline` 修复堆栈溢出

我有这段代码导致堆栈溢出。 // Lexer.Token 在别处定义 对象 BadParser 扩展了解析器 { 导入 Lexer.Token 类型 Elem = Token 私有 def PUNCT = Token.PUNCT

回答 1 投票 0

如何使用美味的检查器提取 scala 3 源文件中的注释

假设我正在解析一些 scala 源文件的美味文件,如下源文件: /** 一些评论 */ 特征 Ls 函数: ... 我想提取“一些评论”评论和ide...

回答 1 投票 0

如何在 Scala 3 反射中的类主体中获取正确应用的类型?

假设我正在使用 Scala 3 反射来反射这个类: 类 Foo[T](val 事物: T): var 存储:选项[T] = 无 假设我用给定的类型 Foo[Boolean] 进行反映,并且我得到了

回答 1 投票 0

如何在 Scala 3 宏中获得 foo.asInstanceOf[SomeType] 的等效项?

我的宏实现中有这个: def renderJsonFn(rt: RType): Expr[(Any,StringBuilder) => StringBuilder] = val 反射类字段信息 = ??? val typeMaker = ReflectedClassFieldInfo.fieldType....

回答 1 投票 0

Scala 3:查找具有给定注释的函数

对于 Scala 3 宏,有谁知道如何查找具有给定注释的所有函数? 例如: @水果 def apple(): Int = ??? @水果 def 香蕉(): Int = ??? @水果 def 椰子(): Int =...

回答 2 投票 0

如何将 Quotes 实例获取到 Scala 3 宏中的 Expr 中?

我有这个: def myMacroImpl[T:Type](t: Expr[T])(使用引号:Quotes): Expr[String] = { def fooFn(): Expr[(Any,StringBuilder) => StringBuilder] = // 此处可见引号 val qq = Expr(

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.