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

The Checker Framework enhances Java's type system to make it more powerful and useful. This lets software developers detect and prevent errors in their Java programs. The Checker Framework includes compiler plug-ins ("checkers") that find bugs or verify their absence. It also permits you to write your own compiler plug-ins.

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.RUNTIME) @Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) public @interface Impure {}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy