blob: e680208f03034f19944956a8d6e437dce182459c [file] [log] [blame]
package org.checkerframework.common.util.report.qual;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Report all calls of a method that has this annotation, including calls of methods that override
* this method. Note that calls through a supertype, where the method is not annotated, cannot be
* reported.
*
* <p>For example, assume three classes A, B, and C, that each implement/override a method m and A
* &lt;: B &lt;: C. Assume that B.m is annotated as ReportCall. Calls of A.m and B.m will then be
* reported, but calls of C.m will not be reported, even though the C reference might point to a B
* object. Therefore, add the ReportCall annotation high enough in the subtype hierarchy.
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ReportCall {}