问题 如何让scalac告诉我是否有未使用的变量?


我刚刚注意到我的代码中的一个错误,我在其中创建了一个新变量,但后来却未能真正使用它。

我认为scalac会告诉我我的新变量未被使用,但似乎并非如此,并且在少量谷歌搜索/手册页之后,我找不到任何关于启用警告的信息。

我该怎么做才能启用此类警告?


2555
2017-09-12 09:39


起源



答案:


这个东西刚刚在scala用户邮件列表中讨论过。 

讨论结果:IDE的任务是考虑到这一点(到目前为止它们没有或至少不是非常详尽)

主要论点似乎是scala编译器因为速度慢而受到批评,所以在顶部添加更多东西可能不是一个好主意。


7
2017-09-12 10:50



这是一个相当令人不满意的结果。谢谢 - Squidly


答案:


这个东西刚刚在scala用户邮件列表中讨论过。 

讨论结果:IDE的任务是考虑到这一点(到目前为止它们没有或至少不是非常详尽)

主要论点似乎是scala编译器因为速度慢而受到批评,所以在顶部添加更多东西可能不是一个好主意。


7
2017-09-12 10:50



这是一个相当令人不满意的结果。谢谢 - Squidly


编译器现在可以警告您未使用的私有变量,因为 d0c4be6861。这是在 -Xlint。请参阅相关的讨论 错误报告。如果提到的话 -Xlint 陌生,答案就在于 scalac 手册页。


2
2017-12-10 16:22





从scalac 2.12开始,您现在可以使用了 -Ywarn-unused:locals。如果您不仅仅意味着局部变量,还有其他选项:

$ scalac -Ywarn-unused:help
Enable or disable specific `unused' warnings
  imports    Warn if an import selector is not referenced.
  patvars    Warn if a variable bound in a pattern is unused.
  privates   Warn if a private member is unused.
  locals     Warn if a local definition is unused.
  explicits  Warn if an explicit parameter is unused.
  implicits  Warn if an implicit parameter is unused.
  params     Enable -Ywarn-unused:explicits,implicits.
  linted     -Xlint:unused.
Default: All choices are enabled by default.

2
2018-05-03 16:20