Catch common Java mistakes as compile-time errors
graememorgan and ronshapiro Update the description for InvalidTag to emphasise that it really is …
…necessary even within {@code }.

(And drive-by handle nested tags better.)

RELNOTES: N/A

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215546565
Latest commit f465eb5 Oct 3, 2018
Permalink
Failed to load latest commit information.
.github Add an ISSUE_TEMPLATE Jan 3, 2018
.idea Fix IntelliJ copyright header template Jan 10, 2018
annotation Remove redundant `throws` from ErrorProne tests. Aug 29, 2018
annotations Try to specify @OverridingMethodsMustInvokeSuper, and recommend bette… Aug 2, 2018
check_api Tolerate bogus isSubtype queries Oct 3, 2018
core Update the description for InvalidTag to emphasise that it really is … Oct 3, 2018
docgen Fix Typo: Documention->Documentation Sep 28, 2018
docgen_processor Refer to 2.3.2-SNAPSHOT internally May 11, 2018
docs/bugpattern Update the UndefinedEquals article name to reflect the updated conten… Oct 3, 2018
examples Make ant example's path handling work on Windows Sep 13, 2018
refaster Refer to 2.3.2-SNAPSHOT internally May 11, 2018
test_helpers Remove redundant `throws` from ErrorProne tests. Aug 29, 2018
third_party/java/auto Initial bazel build Apr 18, 2015
type_annotations Refer to 2.3.2-SNAPSHOT internally May 11, 2018
util Don't delete orphaned bugpattern markdown files. Apr 16, 2018
.gitignore Remove redundant calls to `String.toString()` Jul 6, 2017
.travis.yml Enable JDK 11 build Aug 8, 2018
AUTHORS Add String.split check, and make all existing code pass it Dec 21, 2017
CONTRIBUTING.md Add CONTRIBUTING file Dec 18, 2014
COPYING Initial commit. Basic Predicate DSL for matchers, and check for one e… Sep 15, 2011
README.md Use https instead of http May 10, 2018
WORKSPACE Initial bazel build Apr 18, 2015
appveyor.yml Don't notify on appveyor build success Nov 16, 2016
pom.xml Migrate the ant examples to use the -Xplugin integration Aug 21, 2018

README.md

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