blob: 08839790d5fbbbd17e77ed754e13ca3970f1beb1 [file] [log] [blame]
package org.checkerframework.checker.mustcall.qual;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* This annotation is an alias for {@link MustCall} that applies to the type on which it is written
* <b>and</b> all of its subtypes. It prevents the need to annotate each subtype with an {@link
* MustCall} annotation. This annotation may only be written on a class declaration.
*
* @checker_framework.manual #must-call-checker Must Call Checker
*/
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface InheritableMustCall {
/**
* Methods that might need to be called on the expression whose type is annotated.
*
* @return methods that might need to be called
*/
public String[] value() default {};
}