问题标签 [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.

0 投票
2 回答
4127 浏览

java - 从jar中提取scala源代码

所以我有一个包含 scala 作为源代码的 jar 文件,我丢失了原始代码。有没有办法将 jar 中的类文件转换为 scala 函数和类,而不是编译器生成的 java 类?

我试过在它上面使用反编译器,它只给了我零意义的java代码。

先感谢您!

0 投票
0 回答
73 浏览

scala - 复合类型值的模式匹配 - 它是编译器错误吗?

在尝试将值与复合类型进行模式匹配时,我偶然发现了一些神秘的(至少对我而言)编译器行为,我怀疑这可能是编译器错误。不过,在提交错误报告之前,如果比我更有知识的人可以看看这个并可能对正在发生的事情提供一些解释,我会很高兴。

我们从一些特征和案例类的层次结构开始:

我们想对复合类型的值进行操作:A with B

首先,我尝试使用案例类提取器进​​行模式匹配:

由于类型不匹配,上面的编译失败:

其次,我用实例类型匹配替换了提取器的使用:

以上确实编译并且确实有效,将“a1”和“a2”打印到屏幕上,但会发出关于无法访问代码的错误警告:

令人惊讶的是, make Anotsealed消除了警告(尽管第一个模式匹配仍然无法编译)。

那么,问题来了:

  1. 第一个模式匹配应该编译吗?如果不是,那究竟为什么呢?
  2. 为第二个模式匹配发出的警告是完全错误的,还是我很幸运,并且在某些情况下这个匹配可能会出现错误的分支?
  3. 我应该提交错误报告还是我刚刚错过的一个长期已知的问题?

我已经在2.11.7和上进行了测试2.11.8

0 投票
5 回答
2722 浏览

scala - -Ywarn-unused-import 触发播放路径文件

我希望能够使用-Xfatal-warningsand -Ywarn-unused-import,问题是编译器在包含我的应用程序播放路径的文件上触发了错误:

其他路线也是如此。

是否有可能告诉 scalac 忽略文件?

斯卡拉版本是2.11.8.

0 投票
1 回答
62 浏览

scala - Scalac导入语言错误

我正在尝试编译AtomicScala示例:

scalac AtomicTest.scala

我得到错误:

我是一个完全的新手,所以非常感谢任何帮助。PS Scala 编译器版本 2.9.2

0 投票
0 回答
332 浏览

scala - 什么是 Scala 编译器中的 8 位模拟器以及如何启动它?

我正在阅读这个问题并看到:

scalac 包括一个 8 位的全武装战斗站模拟器,可在 GenICode 编译阶段使用魔法组合键 CTRL-ALT-F12 进行查看。

为了显示编译阶段scalac的内容,我使用了scalac -Xshow-phases.

似乎是相关的阶段。

我编译了一个 Hello-world 程序

并一直按scalac Hello.scalaCTRL-ALT-F12。没啥事儿。并尝试scalac -Xprint:icode Hello.scala使用 CTRL-ALT-F12,也没有什么特别的。

如何触发模拟器?那有什么作用呢?

在 scala 2.11.8 和 OS X 10.11.5 上

0 投票
1 回答
3849 浏览

scala - 如何正确使用 scalac -Xlint

scalax -Xlint help 提供以下信息:

有没有办法启用所有检查?的语义是scalac -Xlint什么?它会启用所有功能吗?默认设置(哪个)?什么都不会?

注意:Scala 2.11.8 和 sbt 0.13.9

如果较新的版本提供不同的行为/功能,请告诉我,因为更新它们不是问题

0 投票
1 回答
501 浏览

scala - 播放框架路由文件编译警告:方法 at 中的本地 val 从未使用

在我的播放应用程序上,我有一个包含公共文件路线的路线文件。最近我添加了-Ywarn-unused编译器标志,我收到了一些意想不到的警告。

脚步:

  1. activator new testingScalac(从模板列表中选择 play-scala)
  2. 添加到build.sbt标志scalacOptions ++= Seq("-Ywarn-unused")
  3. 添加到路由文件:

GET /favicon.ico controllers.Assets.at(path="/public",file="/images/favicon.ico")

GET /favicon.png controllers.Assets.at(path="/public",file="/images/favicon.png")

GET /robots.txt controllers.Assets.at(path="/public",file="robots.txt")

现在,运行sbt compile返回:

我在路由文件上做错了什么,还是播放框架/编译器错误(我在 github 中查看并找不到与此相关的任何内容)?

注意:它使用 play 2.5.4 但它也发生在 play 2.4.x

0 投票
0 回答
64 浏览

multithreading - 带有java线程错误的Scala:错误的符号引用

我是 scala 的新手,正在尝试使用它。我创建了新线程来运行测试,使用 thread.join 编译代码时出现编译错误:

没有 thread.join 代码编译并运行

这是我的代码:

我究竟做错了什么?我知道代码不干净,但这只是 scala 测试的一个游戏

0 投票
2 回答
4016 浏览

scala - scala中从Int到Double的隐式转换不起作用

我已经编写了一些隐式代码,如下所示,我想知道为什么i2d不调用函数隐式对话。

输出_scalac -Xprint:typer Test.scala

眼镜

  • scalac 版本是 2.11.8。
0 投票
1 回答
631 浏览

scala - 在 IntelliJ IDEA 中调试 Scala 编译器插件

我想为scalac编写我的编译器插件,但我在开发的早期阶段遇到了一个问题,因为我无法从 IntelliJ IDEA 运行和调试我的代码。

我使用这些教程来实现一个虚拟插件:

我的目标是在 IDEA 的调试模式下以某种方式运行我的插件以遇到断点。

更新:

下面的答案对我有很大帮助,但实际上,我为JAVA_OPTS环境变量添加了调试参数,并带有挂起直到远程调试器连接选项。然后我启动scalac并运行下面描述的远程调试器。