Are there any tools for performing static analysis

2020-05-14 01:56发布

Are there any tools for performing static analysis of Scala code, similar to FindBugs and PMD for Java or Splint for C/C++? I know that FindBugs works on the bytecode produced by compiling Java, so I'm curious as to how it would work on Scala.

Google searches (as of 27 October 2009) reveal very little.

Google searches (as of 01 February 2010) reveal this question.

9条回答
做个烂人
2楼-- · 2020-05-14 02:04

Here is an updated answer as of August 2014 for some that are aimed or work well with Scala.

Personally I think the JVM or Java ones end up with far too many false positives, or have inspections that are aimed mostly at Java specific classes. For example, since in Scala we don't tend to use the Java Collections, all the findbugs collection based inspections are not needed. Another example is the inspections for use of static fields which are irrelevant in Scala.

查看更多
小情绪 Triste *
3楼-- · 2020-05-14 02:08

Findbugs and other tools that are bytecode based will work, in the sense that they will find faults in your code. Unfortunately, the bytecode based approaches have been tuned against the output of the javac compilers, meaning they are likely to produce very high false positive rates, and miss basic issues, because Scala will be producing different idioms than the javac compiler.

查看更多
相关推荐>>
4楼-- · 2020-05-14 02:08

There is a SBT plugin for PMD copy paste detector CPD.

https://github.com/sbt/cpd4sbt

查看更多
迷人小祖宗
5楼-- · 2020-05-14 02:10

There is now Scalastyle which does the job that Checkstyle does for Java. This includes not only formatting checks, but also some checks for known sources of bugs, such as a class which implements hashCode() but not equals.

There are currently about 40 checks, but we're adding them all of the time.

For more information, see www.scalastyle.org.

查看更多
Deceive 欺骗
6楼-- · 2020-05-14 02:10

I'm having a lot of fun with Codacy (e.g. https://www.codacy.com/app/hejfelix/Frase/dashboard) for Open Source projects

查看更多
贪生不怕死
7楼-- · 2020-05-14 02:15

I don't know much about Scala but if is Java compatible Klocwork's Solo product might work. You can find it here Klocwork Solo

查看更多
登录 后发表回答