antlr/antlr4 — pull request #434 by sharwell (2014-01-21 20:50:16+00:00)
Title: Annotations

* Move `@NotNull` and `@Nullable` to their own assembly
* Add `NullUsageProcessor` annotation processor to validate correct usage (at compile time) of the annotations in many scenarios

The following is a list of the scenarios analyzed and reported by this processor during the build process.

* **Error:** an element is annotated with both `@NotNull` and `@Nullable`.
* **Error:** an method which returns `void` is annotated with `@NotNull` or `@Nullable`.
* **Error:** an element with a primitive type is annotated with `@Nullable`.
* **Error:** a parameter is annotated with `@NotNull`, but the method overrides or implements a method where the parameter is annotated `@Nullable`.
* **Error:** a method is annotated with `@Nullable`, but the method overrides or implements a method that is annotated with `@NotNull`.
* **Warning:** an element with a primitive type is annotated with `@NotNull`.
* **Warning:** a parameter is annotated with `@NotNull`, but the method overrides or implements a method where the parameter is not annotated.
* **Warning:** a method is annotated with `@Nullable`, but the method overrides or implements a method that is not annotated.