问题标签 [scalac]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 使用 -feature 重新运行以获取详细信息,使用 gradle 构建时如何查看 scala 功能警告?
gradle scala 插件将compileScala
任务添加到项目中。但有时 scala 编译器可能会报告如下内容:
我尝试使用 -feature 重新运行,但 gradle build 抱怨如下:
gradle help --task :compileScala 没有提供任何有用的信息。
问题是,当使用 gradle 编译 scala 代码时,如何将 -feature 选项传递给 scala 编译器以查看功能警告?
编辑
以防万一这有用:
scala - 如何解码 Scala 编译器生成的名称
我们的代码正在使用以下消息杀死 Scala 编译器:
为了弄清楚,我试图理解Tuple2$mcJD$sp
应该是什么。它是为 生成的类(Long, Double)
吗?这是在某处记录的吗?谢谢!
到目前为止我发现的一些线索:
- 我认为类型缩写与Class.getName中记录的缩写相匹配。
- 该名称在SpecializeTypes.specializedName中生成。根据代码,格式为
m<abbreviated method specialization types>c<abbreviated class specialization types>$sp
.
也许它被认为是编译器内部的东西,并且没有在任何地方记录。
scala - 如何编译 Scala Hello World 应用程序
我是 Scala 的新手,以前从未在其中编写或编译过程序。我试图简单地运行以下 Hello World 示例,我已将其保存在文件名 scalaApp.scala 中
当我进入文件目录中的终端并键入“scalac scalaApp.scala”时,我收到以下错误消息:
我以为我已经按照所有说明在我的计算机上正确安装了 Scala 2.10.3,但我不知道如何测试它,因为我什至无法编译这个简单的程序。如果我在终端中输入“scala”,我会得到一个 scala 提示符,我可以在该提示符上运行“1 + 1”之类的命令。我不确定这显示了多少。我已将 SCALA_HOME 变量添加到 ~/.profile 中,并将 SCALA_HOME 添加到 ~/.profile 中的 PATH 变量中。如果有人能告诉我我做错了什么,或者给我一个关于在哪里可以找到答案的建议,我将不胜感激。
scala - Scala:来自scalac的file.class和file$.class之间的区别
当我使用 scalac 编译 file.scala 时,我最终得到 2 个输出,file.class 和 file$.class。这些文件之间有什么区别,哪个是适合然后运行的文件?我在执行“scala file”和“scala file$”之间得到明显不同的错误消息。
scala - 如何编译这个 Scala 代码
我有一个名为 sumit.scala 的文件,其中包含以下内容
我正在尝试在命令行上编译它
它编译没有错误但是当我运行它时
我遇到了一堆错误,我是 scala 的新手,我只是想在编译后对这段代码进行计时以查看性能差异。我已经尝试将我的“total_select_values”放入对象中并取出(如图所示),没有任何区别。
谢谢你的帮助!
更新了 Scala 信息和实际错误
Scala 版本 2.11.4 Java 1.7.0_40
java.lang.NoSuchMethodException: sumit.main([Ljava.lang.String;) at java.lang.Class.getMethod(Unknown Source) at scala.reflect.internal.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:66 ) 在 scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:101) 在 scala.tools.nsc.CommonRunner$class.run(ObjectRunner.scala:22) 在 scala.tools.nsc.ObjectRunner$ .run(ObjectRunner.scala:39) at scala.tools.nsc.CommonRunner$class.runAndCatch(ObjectRunner.scala:29) at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:39) at scala.tools .nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:65) at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:87) at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:98) 在 scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103) 在 scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
scala - 如何找到导致 Scalac 编译器崩溃的源文件
我正在将一个大型项目升级到 2.10.4 到 2.11.4。我遇到了编译器崩溃,是否有显示导致崩溃的源文件的名称?我可以使用“last everitt/compile:compile”获得完整的跟踪信息
我将恢复擦除项目的大块以二进制搜索崩溃的原因。
这是跟踪顺便说一句:
编辑:删除并注释掉很多文件后,我将其简化为:
Edit2:我能说的最好的就是这没有一个好的选择,我将继续前进,我为此问题提交了一个错误报告(SI-9035)。如果有人知道执行此操作的选项/方法,请发布答案!与此同时,我将继续使用自 2.6 以来一直使用的方法:擦除文件并注释掉行,直到我将其简化为最小示例并提交错误报告。感谢您的想法。
scala - Scala 意外类型推断故障排除
我在O
输出类型的错误类型推断上苦苦挣扎了很长时间。为什么scalac看到Int
而不是(Int,String)
?:
请忽略W,R,ValidKey
类型类,我猜它们在这里无关紧要。
完全相同的情况发生在这种情况下:
我试图用它来处理这个问题,-Ytyper-debug
但它确实是硬核的东西,我不了解它的机制。
更新:我使用 Ordering 类型类复制了它,知道不满足什么隐式解析规则吗?
scala - 如何创建单独的 sbt 配置或任务以使用 WartRemover 进行编译?
WartRemover是一个 scalac 插件。通常它是通过一个sbt 插件配置的。
我希望能够在我的 sbt 项目上将 WartRemover 作为单独的配置或任务运行,而不会影响compile
.
在将 Wartrremover 添加到我的之后,plugins.sbt
我尝试了以下几种变体。
之后scalacOptions
大致包含了我在新lint
配置和配置中的预期compile
。但是,当我在调试模式下运行lint:compile
并compile
使用 sbt 时,我可以看到 scalac 的命令行参数,两个或两个命令都不会导致通过-P:wartremover:...
开关。这很令人惊讶,因为只lint:scalacOptions
显示了-P:wartremover:...
开关。
如何创建单独的 sbt 配置或任务以使用 WartRemover 进行编译而不影响compile:compile
?
scala - Scalac 挂在 RegexParser 的相位类型器上
我有一个 scala 程序,其中有一个解析器组合器。这是通过扩展来完成的scala.util.parsing.combinator.RegexParsers
。我使用 Scala 2.10 开发了它,一切正常。
昨天我将系统升级到 Scala 2.11.4,以及 IntelliJ 14.02(没关系)。
但是,每当我现在尝试编译此程序时,都会scalac
在此阶段挂起:
scalac: phase typer on MyParser.scala
我对这段代码完全没有改变,我不明白它为什么挂起或者我应该从哪里开始。IntelliJ 有一个关于解析器表达式的后缀运算符的警告,例如constants_def?
or structure_def*
,其中?
and*
跟在令牌之后,我添加了这一行,因为SIP:Language Modularization Features:
import scala.language.postfixOps
它实际上没有任何效果,问题仍然是一样的。
如何解决正在发生的事情?我不知道从哪里开始理解为什么相位打字机只是无限期地挂起。
scala - 无法解析路径相关的类型类证据,而没有可访问的值类型
我被困了一个小时才发现这个事实:
我不明白为什么会这样。我能想到的唯一一件事是 scalac 在没有任何前缀可访问的值类型的类型中找不到隐含。它不能被引用。Scalac 显然需要访问它Foo.this.foo
来解决其中的隐含,在这种情况下它不能。
我觉得如果你将类型类和路径依赖类型结合起来,你实际上注定要失败。你最终会处理这种事情。我这样做是因为 scalac 不会在我的 API 方法中推断类型,并且用户必须显式声明它们。所以我选择了这种设计,以便在其中构造类型Foo[T]
并且 api 方法使用现有类型,但是我遇到了几个非常丑陋的问题和此类错误,使我的应用程序看起来像是一个过度设计的废话......