blob: 727a839403b472149f704e5e8078d1cbf615fca2 [file] [log] [blame]
package org.checkerframework.checker.mustcall.qual;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.framework.qual.SubtypeOf;
/**
* The top qualifier in the Must Call type hierarchy. It represents a type that might have an
* obligation to call any set (even an infinite set!) of methods. This type contains every object.
* This type should rarely be written by a programmer.
*
* <p>The Object Construction Checker cannot verify that the property represented by this annotation
* is enforced; that is, the Object Construction Checker will always issue a warning when the value
* of an expression with this type might be de-allocated.
*
* @checker_framework.manual #must-call-checker Must Call Checker
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@SubtypeOf({})
public @interface MustCallUnknown {}