@GroovyASTTransformation(phase = CompilePhase.CONVERSION)
public class NamedVariantASTStubber
extends AbstractASTTransformation
Joint-compilation stubber for NamedVariant. Emits a placeholder Map-arg variant alongside the user-declared method or constructor so Java consumers can call the named-arg form against the joint-compilation stub.
The signature emitted is the simple "all params named" shape:
returnType methodName(Map namedArgs) for methods, or
ClassName(Map namedArgs) for constructors. Mixed cases —
where some parameters carry @NamedParam / @NamedDelegate
and some remain positional — produce a richer signature at runtime that
the stubber does not yet reproduce; Java consumers in those cases see
only the single Map-arg variant in the stub. That is a strict subset of
the runtime, so call sites that match it work either way; call sites
needing positional-plus-map don't compile against the stub.
Originally listed in Tier 3 because a @NamedVariant target
"added by another transform" wouldn't be visible at CONVERSION. In
practice transforms compose this kind of variant via @NamedParam
on parameters of an existing method, and direct user-written
@NamedVariant on a hand-written method has the target visible
at CONVERSION. The Tier 3 deferral was overly cautious; this stubber
covers the common case.
| Fields inherited from class | Fields |
|---|---|
class AbstractASTTransformation |
RETENTION_CLASSNODE, sourceUnit |
| Type Params | Return Type | Name and description |
|---|---|---|
|
public void |
visit(ASTNode[] nodes, SourceUnit source) |