Class ClosureSignatureConflictResolver

java.lang.Object
groovy.transform.stc.ClosureSignatureConflictResolver
Direct Known Subclasses:
PickFirstResolver

public class ClosureSignatureConflictResolver
extends Object
If multiple candidate signatures are found after applying type hints, a conflict resolver can attempt to resolve the ambiguity.
Since:
2.5.0
  • Constructor Details

    • ClosureSignatureConflictResolver

      public ClosureSignatureConflictResolver()
  • Method Details

    • resolve

      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.