Clone this repo:
  1. 18a63d2 Avoid getDeclarationAndTypeAttributes in ClassAndMethod by Liam Miller-Cushon · 15 minutes ago master
  2. 14b6481 Make `CacheLoaderNull` check for more kinds of null returns. by cpovirk · 22 minutes ago
  3. d3a8c00 Handle sealed and non-sealed in SuggestedFixes. by ghm · 3 hours ago
  4. a18a78a Make `AbstractAsyncTypeReturnsNull` use `hasDefinitelyNullBranch` instead of looking only for null literals. by cpovirk · 23 hours ago
  5. b1631fe Enable some ignored tests which pass. by ghm · 6 days ago

Error Prone

Error Prone is a static analysis tool for Java that catches common programming mistakes at compile-time.

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());
  }
}
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 https://errorprone.info/bugpattern/CollectionIncompatibleType)
1 error

Getting Started

Our documentation is at errorprone.info.

Error Prone works with Bazel, Maven, Ant, and Gradle. See our installation instructions for details.

Developing Error Prone

Developing and building Error Prone is documented on the wiki.

Links