Error Prone : un outil pour améliorer l'analyse de type du compilateur Java

Par:
fredericmazue

mar, 25/10/2022 - 14:47

Error Prone est un outil d'analyse de code Java développé par Google. Error Prone se présente comme un plugin au compilateur Java. "En utilisant Error Prone pour augmenter l'analyse de type du compilateur, vous pouvez détecter plus d'erreurs avant qu'elles ne vous coûtent du temps ou ne finissent par devenir des bogues en production. Nous utilisons Error Prone dans le système de construction Java de Google pour éliminer les classes de bogues graves de notre code" explique Mountain View. Google a ouvert le code de Error Prone.

Soit par exemple ce code :

import java.util.Set;
import java.util.HashSet;

public class ShortSet {
  public static void main (String[] args) {
    Set<Short> s = new HashSet<>();
    for (short i = 0; i < 100; i++) {
      s.add(i);
      s.remove(i - 1);
    }
    System.out.println(s.size());
  }
}

Avec Error Prone, la compilation émettra cette erreur :

$ bazel build :
hello ERROR: example/myproject/BUILD:29:1: Java compilation in rule '//example/myproject:hello'
ShortSet.java:6: error: [CollectionIncompatibleType] Argument 'i - 1' should not be passed to this method;
its type int is not compatible with its collection's type argument Short
s.remove(i - 1);
         ^
(see http://errorprone.info/bugpattern/CollectionIncompatibleType)
1 error

Error Prone est documenté sur son site dédié errorprone.info

Error Prone est un logiciel libre disponible sur GitHub.