@Documented @Retention(value=RUNTIME) @Target(value={METHOD,CONSTRUCTOR}) public @interface Pure
Pure is a method annotation that means both SideEffectFree and Deterministic. The more important of these, when performing pluggable type-checking, is usually
 SideEffectFree.
 For a discussion of the meaning of Pure on a constructor, see the documentation of
 Deterministic.
 
This annotation is inherited by subtypes, just as if it were meta-annotated with
 @InheritedAnnotation.