Clone this repo:
  1. 65012e5 Make the private method summary consistent with the general case RELNOTES: N/A by cushon · 7 days ago master
  2. dcc57d4 Fix handling of UNRECOGNIZED in UnnecessaryDefaultInEnumSwitch by cushon · 7 days ago
  3. 5e3c5df Fix ASTHelpers#getSymbol(Tree) handling of ClassTree by cushon · 7 days ago
  4. f980f02 StringSplitter: only replace pattern with literal if it is already a literal; and don't use Splitter.on if the pattern is not a constant. by awturner · 7 days ago
  5. a3bccde Remove text about enums from ReferenceEquality check, as it doesn't check them. by ghm · 7 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.