blob: 2d609285012c34c9f3a21a24c0e32df2bae5e797 [file] [log] [blame] [view] [edit]
# Error Prone
Error Prone is a static analysis tool for Java that catches common programming
mistakes at compile-time.
```java
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](https://errorprone.info).
Error Prone works with [Bazel](https://bazel.build),
[Maven](https://maven.apache.org), [Ant](https://ant.apache.org), and
[Gradle](https://gradle.org). See our
[installation instructions](https://errorprone.info/docs/installation) for
details.
## Developing Error Prone
Developing and building Error Prone is documented on the
[wiki](https://github.com/google/error-prone/wiki/For-Developers).
## Links
- Mailing lists
- [General discussion](https://groups.google.com/forum/#!forum/error-prone-discuss)
- [Announcements](https://groups.google.com/forum/#!forum/error-prone-announce)
- [Javadoc](https://errorprone.info/api/latest/)
- Pre-release snapshots are available from Sonatype's snapshot repository
(https://central.sonatype.com/repository/maven-snapshots/)