@Retention(value=RUNTIME) @Target(value=TYPE) public @interface DenyReplace
Node subtype is annotated with this annotation then replacement is denied. When replacement is denied an IllegalArgumentException will be
thrown on replace. Only final subtypes of type Node may be annotated.
DenyReplace is recommended for uncached or not adoptable nodes that should never be
replaceable. Truffle DSL automatically applies this annotation to all uncached versions of
specialized nodes and libraries.