@GroovyASTTransformation(phase = CompilePhase.CONVERSION)
public class IndexedPropertyASTStubber
extends AbstractASTTransformation
Joint-compilation stubber for IndexedProperty. Emits placeholder
indexed accessors getXxx(int) and (for non-immutable fields)
setXxx(int, T) so Java consumers can call them against the
joint-compilation stub.
Component type detection mirrors the full transform:
T from T[].Object if the list is raw.Setter emission is suppressed when the enclosing class carries an
Immutable-family annotation (@Immutable,
groovy.transform.ImmutableBase, or
groovy.transform.KnownImmutable). The full transform's
runtime guard uses field-level IMMUTABLE_BREADCRUMB metadata
which isn't set until CANONICALIZATION; the class-level annotation
check is a CONVERSION-time approximation that matches the typical
usage pattern. Less common configurations may produce a stub that
over-claims the setter — flagged in the GEP-21 spike notes.
| Fields inherited from class | Fields |
|---|---|
class AbstractASTTransformation |
RETENTION_CLASSNODE, sourceUnit |
| Type Params | Return Type | Name and description |
|---|---|---|
|
public void |
visit(ASTNode[] nodes, SourceUnit source) |