All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.framework.qual.IgnoreInWholeProgramInference Maven / Gradle / Ivy

There is a newer version: 4.1.2
Show newest version
package org.checkerframework.framework.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;

/**
 * This annotation can be used two ways:
 *
 * 

1. As a meta-annotation indicating that an annotation type prevents whole-program inference. * For example, if the definition of {@code @Inject} is meta-annotated with * {@code @IgnoreInWholeProgramInference}:
* @IgnoreInWholeProgramInference
* @interface Inject {}
* then no type qualifier will be inferred for any field annotated by {@code @Inject}. * *

This is appropriate for fields that are set reflectively, so there are no calls in client code * that type inference can learn from. Examples of qualifiers that should be meta-annotated with * {@code @IgnoreInWholeProgramInference} include {@code @Inject}, {@code @Singleton}, * and {@code @Option}. * *

2. As a field annotation indicating that no type qualifier will be inferred for the field it * annotates. * * @see * org.checkerframework.common.wholeprograminference.WholeProgramInferenceScenes#updateInferredFieldType * @checker_framework.manual #whole-program-inference-ignores-some-code Whole-program inference * ignores some code */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD}) public @interface IgnoreInWholeProgramInference {}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy