scala-compiler相关内容

Scalac同相悬挂打字机

我对2.10.3和SLICK(Codegen)生成的代码有问题。它看起来与 非常相似 Scalac hanging on phase typer of RegexParser Codegen生成的其他文件可以工作,但这个文件在“scalac:Phase Typer Foo.scala”中永远挂起 我能看到的唯一区别是表中的列数不同,这会产生许多列和大的cons列表,如下图所示 ..
发布时间:2022-08-28 13:12:44 其他开发

在scala 2中,可以使用宏或任何语言特性来重写所有子类中的抽象类型具体化机制吗?Scala 3怎么样?

在 scala 2 中已知宏是严格本地的,并且只在定义类时执行一次.这一特性在与抽象类型结合时显得尤为薄弱,因为将抽象类型转换为具体类型的过程通常会绕过宏并使用其自身的原始规则. 以下测试代码中展示了一个与直觉相反的结果的简单示例: trait BB {def ttag = 隐式[TypeTag[this.type]]}案例类 AA() 扩展了 BB它(“可以类型标签"){val kk ..
发布时间:2021-07-15 20:57:15 其他开发

如何找到 Scala 编译器标志/选项的描述?

如何找到最新 scalac 版本的所有标志?谷歌搜索几个小时后,我只发现 过时 文档.(例如,他们甚至没有提到“-feature"标志). 有没有办法从 scalac 或其他任何东西中获取带有描述的编译器标志列表? 解决方案 我能找到的最接近的是编译器的相关源文件.不幸的是,这些选项分布在多个文件中.在撰写本文时,它分解如下: ScaladrefrSettings>(用于基本标 ..
发布时间:2021-07-15 20:12:32 其他开发

如何以编程方式调用 Scala 编译器?

我希望我的 Scala 代码将 Scala 类作为输入,编译并执行该类.如何以编程方式调用 Scala 编译器?我将使用最新的 Scala 版本,即 2.10. 解决方案 ToolBox 我认为调用 Scala 编译器的正确方法是通过 概述.具体来说,通过解析工具箱创建树部分在“符号,树"中和 Types 讨论了使用 ToolBox 将 String 解析为 Tree.然后你可以调用 ..
发布时间:2021-07-15 19:22:08 其他开发

解决 SBT 中 Scala 宏和编译器框架的依赖

我正在尝试编写一个框架,以便更轻松地编写 Scala 编译器插件,我正在做的是在 Scala quasiquotes 之上编写一个框架.所以我的项目依赖于来自宏天堂的宏以及 Scala 编译器和 Scala 反射库. 我按照此处提到的说明编写了 SBT 构建脚本:https://github.com/scalamacros/sbt-example-paradise/blob/master/p ..
发布时间:2021-07-15 18:56:32 其他开发

Scala 条件编译

我正在编写一个 Scala 程序,我希望它能够与一个大库的两个版本一起使用. 这个大库的第 2 版对 API 进行了非常轻微的更改(只有一个类构造函数签名有一个额外的参数). //Lib v1class APIClass(a: String, b:Integer){...}//库 v2class APIClass(a: String, b: Integer, c: String){...} ..

什么是ScalaSignature?

将Scala文件反编译为Java代码时,经常会遇到用 ScalaSignature s注释的类.这些似乎只有一个注释值,即某种程度上已编码的String.为什么Scala编译器会创建这样的奇数构造,而不是在 class 文件中使用自定义的 Attribute ? 解决方案 来自将腌制的Scala签名存储在类文件中: 遗产签名存储方法作为属性同时更优雅更紧凑(约15%)和更简单比起使用 ..
发布时间:2021-05-18 20:54:30 Java开发

如何配置IntelliJ Scala插件以使用Scala的本机演示文稿编译器?

尽管 IntelliJ Scala插件使用适当的Scala编译器来生成实际的字节码,但似乎使用突出显示类型错误: 由Idea的Scala实现的语法突出显示功能 插件,它需要立即重新处理您所有的文件 改变的方式与实际相似,但现在完全相同 编译器会这么做. 这可能是有时项目成功构建但IntelliJ在编辑器中显示假阳性红色下划线的原因.即使选择了使用sbt shell ,情况似乎也是如此, ..
发布时间:2020-11-29 22:00:44 其他开发

Scala-如何在运行时从外部文件编译代码?

我想设计一个Scala程序,该程序接受Scala文件作为参数,可以自定义程序的执行.特别是,我想在运行时提供一些文件,这些文件包含将由程序调用的方法的实现.如何正确依赖外部文件并在运行时动态调用其方法?理想情况下,我还希望这些文件能够依赖程序中的方法和类. 场景示例:我有一个包含val p: Plant = Greenhouse.getPlant()行的函数,并且在运行时将提供的文件之一中定 ..
发布时间:2020-07-22 20:50:32 其他开发

挂在RegexParser的相位类型器上的Scalac

我有一个scala程序,其中除其他外还具有解析器组合器.这是通过扩展scala.util.parsing.combinator.RegexParsers来完成的.我使用Scala 2.10进行了开发,并且一切正常. 昨天我将系统与IntelliJ 14.02一起升级到了Scala 2.11.4(无关紧要). 但是,每当我现在尝试编译该程序时,scalac就会在此阶段挂起: sca ..

Scala的类型删除如何适用于更高版本的类型参数?

我不明白哪个泛型类型参数Scala会删除。我曾经认为它应该清除所有泛型类型参数,但这似乎不是这种情况。 如果我' m错误:如果我在代码中实例化类型为 Map [Int,String] 的实例,那么在运行时,实例只知道它的类型为 Map [_,_] ,并且不知道其泛型类型参数。这是为什么以下成功编译和执行没有错误: val x:Map [Int,String] = Map( 2 - ..