cost 380 ms
在 scala 2.13 中。 如何在宏中可靠地记录信息/警告/错误? - In scala 2.13. How to log information/warning/error reliably in macro?

我正在编写一个宏,可以在编译期间记录一条短消息,使用 scala 2.13 的模式匹配和常量类型功能: 在测试的时候,我发现直接调用宏大部分时间都是有效的: (这会生成正确的编译消息): ...但如果是隐式宏模式( https://docs.scala-lang.org/overviews/m ...

Scala宏类型检查如何将标识符解析为类型? - How do Scala macro typechecks resolve identifiers to types?

我正在尝试创建一个只能应用于某种类型的注释宏。 当我运行测试时,仅将注释应用于顶级对象时,会看到“找不到类型”错误。 我的宏代码: 我的测试代码: 我的测试日志是: 我的调试打印告诉我,每个测试中提取的父类型都是相同的,但是由于某种原因,顶级对象无法解析TypeN ...

宏注释生成的伴随类的apply方法未解决 - Macro annotation generated companion class's apply method not resolved

我编写了一个宏注释处理器,该处理器生成的所有方法与声明案例类所获得的方法相同,但是提供了散列约束。 这有点棘手,但总的来说,我对结果感到非常满意。 但是,我看到我尚未解决的围绕apply方法的某些行为。 以前,当Foo类是case类或具有手动定义的apply方法时,我可以编写类似foo ...

Scala:是否可以使用宏注释来注释类的构造函数字段? (宏观天堂) - Scala: is it possible to annotate a constructor field of a class using a macro-annotation? (macro paradise)

我试图使用宏注释来注释类的构造函数值。 假设实现了一个名为@identity的宏注释,并在类A的类定义中使用如下: 当只是注释foobar一切都编译得很好。 但是,当注释foo我得到以下编译时错误: 没有伴侣的顶级类只能扩展为同名类或同名同伴中的块 有人可以详细说明这个错 ...

Scala 宏注释错误的解决方法 - Workaround for Scala macro annotation bug

我有一个宏注释,用于将隐式类型类注入到伴随方法中。 大多数时候它按预期工作,但是当我使用类型约束表示法时它会中断: 此错误已在 SO 上描述并报告为错误。 问题是:不再维护宏(v1),所以我不能指望这会被修复。 所以我想知道的是:我可以在宏中自己解决这个问题吗? 对 AST 的这种更改是 ...

Scala宏:根据文件内容生成代码 - Scala macros: generate code based on file contents

我想基于一些文件生成scala类。 文件的放置无关紧要(可以是资源文件夹,也可以将文件放置在我的Scala源文件附近)。 执行scala宏后,如何读取它们? (我使用StaticAnnotation的内联def apply(defn:Any):任何方法) 当我尝试使用资源时,找不 ...

Scala宏:生成的类无法使用未实现的成员进行编译 - Scala Macros: Generated class fails to compile with unimplemented members

我的问题是我生成的类的成员没有被识别为已实现。 这是为Scala 2.10 / 2.11 / 2.12构建的,默认值为2.11。 使用宏天堂2.10。 这样做的目的是将某些特征标记为可冻结,并为每个采用scala.util.Try的实现类生成一个实现类。 scala.util.Try为 ...

Eclipse:解决Scala中的隐式转换和宏注释的问题 - Eclipse: Issues resolving implicit conversions and macro annotations in Scala

我正在使用macroparadise在我的项目中生成方法和case类(宏本身是在与使用它们的核心文件不同的项目中定义的)。 一切都可以按预期进行编译和运行,但是Eclipse无法解析由我的宏生成的变量和方法。 但是,当我关闭并重新打开Eclipse时,它可以完美地识别所有内容。 我可以 ...

SBT插件:如何将编译器插件添加为不向下游传播的依赖项? - SBT Plugin: How to add compiler plugin as a dependency that is not propagated downstream?

我正在编写一个SBT插件。 我想使用Circe JSON库,但是它需要Scala 2.10上的Macro Paradise编译器插件。 通常,您将编译器插件添加到build.sbt ,将SBT插件添加到project/plugins.sbt 。 现在,当您构建SBT插件时,其他插件 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM