Scala警告,IntelliJ和编译器标志

Jus*_*yul 11 scala intellij-idea

我现在正在给IntelliJ Scala插件一个旋转,有一件事让我烦恼不已.编译时我收到3个警告.

Warning: scala: Recompiling 4 files
Warning: scala:
Warning: scala: there were 1 deprecation warnings; re-run with -deprecation for details
Run Code Online (Sandbox Code Playgroud)

为什么它会给我警告文件正在重新编译?这可以关掉吗?最后,空警告是什么?:d

小智 23

在IntelliJ 14中:

  1. 提出偏好Intellij IDEA > Preferencescmd + ,
  2. 查一查Scala Compiler.或者,它在Build, Execution, Deployment > Compiler > Scala Compiler
  3. 检查选项 Deprecation warnings

重建你的项目!

启用弃用标记的首选项屏幕截图.


paw*_*icz 7

我想补充说明IntelliJ IDEa报告的警告和错误.

JetBrains使用它自己的scala分析器来识别和报告错误.有时它报告假的错误或警告.我认为这是因为从编译器的角度来看,scala是更复杂的语言,而其他语言则更多.即使所有官方scala规范都已实现,也有一些情况已被忽略(阅读:总有一些错误).如果您发现IntelliJ IDEa报告为错误/警告的内容对于scalac编译器是可以的,您可以尝试将其报告为错误(IntelliJ IDEa支持报告错误).来自JetBrains的人会修复它.

更多的scala库使用的是编译器扩展的宏,这会增加一些额外的编译器行为.如果IDE确实知道它们的规范,它就不会将这些非标准代码识别为错误.最好注意这一点.我认为同样涉及Eclipse scala IDE.

总结以上所有内容: 不要相信IntelliJ或其他IDE告诉您的所有警告和错误,除非它使用scalac编译得很好.


om-*_*nom 5

JVM参数不是编译器参数 - 首先用于实际运行代码,以后用于将其编译为字节码.您需要打开项目设置并在那里调整选项:

在此输入图像描述

  • 从Intellij 14开始,这个解决方案已经过时了.不再有Scala方面. (3认同)
  • 新位置在[katfang的答案](http://stackoverflow.com/a/27932678/27358). (2认同)