@Retention(value=RUNTIME)
@Target(value={CONSTRUCTOR,METHOD})
@Documented
@Beta
@GwtCompatible
public @interface Pure
Whether the constructor or method causes any side-effects to
non-local state.
On Inlined methods this is means the compiler cannot
use the resulting Java expression as a statement.