46 votes

Existe-t-il des outils permettant d'effectuer une analyse statique du code Scala?

Existe-t-il des outils d'analyse statique du code Scala, similaires à FindBugs et PMD pour Java ou Splint pour C / C ++? Je sais que FindBugs fonctionne sur le bytecode produit lors de la compilation de Java. Je suis donc curieux de savoir comment cela fonctionnerait sur Scala.

Les recherches Google (au 27 octobre 2009) en révèlent très peu.

Les recherches Google (au 01 février 2010) révèlent cette question.

20voto

Chris Peterson Points 1726

FindBugs analyse les codes d'octet JVM, quel que soit l'outil qui les a générés. J'ai essayé d'utiliser FindBugs pour vérifier les fichiers .class générés par Scala. Malheureusement, FindBugs a produit de nombreux avertissements, même pour des programmes Scala triviaux.

17voto

Matthew Farwell Points 31257

Il y a maintenant Scalastyle qui fait le travail que Checkstyle fait pour Java. Cela inclut non seulement les vérifications de formatage, mais également certaines vérifications des sources de bogues connues, telles qu'une classe qui implémente hashCode () mais pas égal.

Il y a actuellement environ 40 chèques, mais nous les ajoutons tout le temps.

Pour plus d'informations, voir www.scalastyle.org .

16voto

folone Points 4523

Il n'y a de travail à faire dans cette direction. Quelques liens:

Il y a aussi une discussion sur la scala de la liste de courrier, archives disponibles ici.

8voto

monkjack Points 4727

Voici une mise à jour de réponse à août 2014 pour certains qui visent ou bien travailler avec Scala.

Personnellement, je pense que la JVM Java ou ceux jusqu'à la fin avec beaucoup trop de faux positifs, ou faire procéder à des vérifications qui sont destinés principalement à Java des classes spécifiques. Par exemple, puisque dans la Scala nous n'avons pas tendance à utiliser le Java Collections, tous les findbugs collection inspections ne sont pas nécessaires. Un autre exemple est les inspections pour l'utilisation des champs statiques qui ne sont pas pertinents dans Scala.

7voto

Michael Donohue Points 9831

Findbugs et d'autres outils basés sur du code intermédiaire fonctionneront, dans le sens où ils trouveront des erreurs dans votre code. Malheureusement, les approches basées sur les bytecodes ont été ajustées aux résultats des compilateurs javac, ce qui signifie qu'elles risquent de produire des taux de faux positifs très élevés et de rater des problèmes fondamentaux, car Scala produira des idiomes différents de ceux du compilateur javac.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X