Package: groovy.transform.stc

## [Java] Class PickFirstResolver

- groovy.transform.stc.PickFirstResolver

-     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).

  Since:
    2.5.0

- - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public List<ClassNode>` | `resolve(List<ClassNode> candidates, ClassNode receiver, Expression arguments, ClosureExpression closure, MethodNode methodNode, SourceUnit sourceUnit, CompilationUnit compilationUnit, String[] options)` Parameters: `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 Closure parameter was annotated with ClosureParams `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 Returns: 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.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class ClosureSignatureConflictResolver` | `resolve`

- - ### Method Detail

    - #### public List<ClassNode> resolve(List<ClassNode> candidates, ClassNode receiver, Expression arguments, ClosureExpression closure, MethodNode methodNode, SourceUnit sourceUnit, CompilationUnit compilationUnit, String[] options)

      Parameters:
        `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 Closure parameter was annotated with ClosureParams
        `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
      Returns:
        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.