public class PickFirstResolver extends ClosureSignatureConflictResolver
Returns the first of several candidates found. This is useful if several types should be supported but only the first should be the default/inferred type. Other options in the list are obtained through explicitly typing the parameter(s).
resolvepublic List<ClassNode> resolve
(List<ClassNode> candidates, ClassNode receiver, Expression arguments, ClosureExpression closure, MethodNode methodNode, SourceUnit sourceUnit, CompilationUnit compilationUnit, String options)
candidates- the list of signatures as determined after applying type hints and performing initial inference calculations
receiver- the receiver the method is being called on
arguments- the arguments for the closure
closure- the closure expression under analysis
methodNode- the method for which a
Closureparameter was annotated with
sourceUnit- the source unit of the file being compiled
compilationUnit- the compilation unit of the file being compiled
options- the options, corresponding to the
ClosureParams.options()found on the annotation
- a non-null list of signatures, where a signature corresponds to an array of class nodes, each of them matching a parameter. A list with more than one element indicates that all ambiguities haven't yet been resolved.