Clone this repo:
  1. fc16cc5 Created ArrayAsKeyOfSetOrMap and its test. by siyuanl · 10 days ago master
  2. f49fc52 Added ComparingThisWithNull check by seibelsabrina · 10 days ago
  3. b271308 Automated rollback of changelist 0b505848bd6555101af9da22608193327f3b87f8 by cpovirk · 10 days ago
  4. bc0e64d Replace a Type#equals with ASTHelpers#isSameType. by ghm · 10 days ago
  5. 819e1ed Improve CompletionFailure crash handling by cushon · 10 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.