Provide support for instrumentation of annotations in all places where Java 8 allows developer put them. E.g annotation on types or in different parts of method declaration.
Please note that javac compiler itself does not understand such annotations - it's up to annotation processors to handle them correctly.
However, as Clover does perform instrumentation "offline" (i.e. not inside the javac process), we must at least allow these annotations to be present (i.e. do not throw parse exceptions); Clover does not need to understand them, however.
Extend ANTLR grammar (java.g) to handle these constructs
- method return values, thrown exceptions
- generic types, including upper and lower bounds, wildcards
- nested classes
- arrays and varargs
- type casting and instanceof
- "new" keyword - constructors, including nested and generic ones
- generic methods
- class/interface inheritance
- method and constructor references
Out of scope:
- explicit "this" receiver (if required to handle) - tracked in