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

org.checkerframework.dataflow.qual.Impure Maven / Gradle / Ivy

Go to download

Checker Qual Android is the set of annotations (qualifiers) and supporting classes used by the Checker Framework to type check Java source code. The checker-qual-android artifact is identical to the checker-qual artifact, except that in checker-qual-android annotations have classfile retention. The default Android Gradle plugin retains types annotated with runtime annotations in the main dex, but strips out class-retention annotations. Please see artifact: org.checkerframework:checker

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

/**
 * {@code Impure} is a method annotation that means the method might have side effects and/or might
 * be nondeterministic. Conceptually, it completes the "lattice" of purity annotations by serving as
 * a top element. That is, any {@code @}{@link Pure} method can be treated as {@code @}{@link
 * SideEffectFree} or {@code @}{@link Deterministic}, and any {@code @}{@link SideEffectFree} or
 * {@code @}{@link Deterministic} method can be treated as {@code @Impure}.
 *
 * 

This annotation should not be written by a programmer, because leaving a method unannotated is * equivalent to writing this annotation. * *

The purpose of this annotation is for use by tools. A tool may distinguish between unannotated * methods (that the tool has not yet examined) and {@code @Impure} methods (that the tool has * determined to be neither {@code @SideEffectFree} nor {@code @Deterministic}). * * @checker_framework.manual #type-refinement-purity Side effects, determinism, purity, and * flow-sensitive analysis */ @Documented @Retention(RetentionPolicy.CLASS) @Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) public @interface Impure {}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy