Clone this repo:
  1. 877841b Remove suggestion for `// fall through` for empty switch cases in MissingDefault. by epmjohnston · 2 days ago master
  2. 8a29f5a New check to ensure reachability fences are used in a finally block by cushon · 2 days ago
  3. 2f4a545 ErrorProne check for verifying that Binder.restoreCallingIdentity() by pvisontay · 2 days ago
  4. c944fa0 Add errorprone check to discourage the use of three-letter timezone identifiers. by awturner · 2 days ago
  5. e76154d Introduce @BugPattern.disableable to control whether a check can be disabled using command line flags by cushon · 5 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.remove(i - 1);
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);
1 error

Getting Started

Our documentation is at

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.