Class TraitTypeCheckingExtension


public class TraitTypeCheckingExtension extends AbstractTypeCheckingExtension
An extension that handles field, super and static method calls within a trait.
Since:
2.3.0
  • Constructor Details

    • TraitTypeCheckingExtension

      public TraitTypeCheckingExtension(StaticTypeCheckingVisitor typeCheckingVisitor)
      Creates the trait-specific type-checking extension.
  • Method Details

    • handleMissingMethod

      public List<MethodNode> handleMissingMethod(ClassNode receiver, String name, ArgumentListExpression argumentList, ClassNode[] argumentTypes, MethodCall call)
      Resolves trait super calls and helper-backed trait method dispatch.
      Overrides:
      handleMissingMethod in class TypeCheckingExtension
      Parameters:
      receiver - the type of the receiver
      name - the name of the called method
      argumentList - the list of arguments of the call
      argumentTypes - the types of the arguments of the call
      call - the method call itself, if needed
      Returns:
      an empty list if the extension cannot resolve the method, or a list of potential methods if the extension finds candidates. This method must not return null.
    • handleUnresolvedProperty

      public boolean handleUnresolvedProperty(PropertyExpression pexp)
      Resolves synthetic trait static-field accessor properties.
      Overrides:
      handleUnresolvedProperty in class TypeCheckingExtension
      Parameters:
      pexp - the unresolved property
      Returns:
      boolean false if this extension doesn't resolve the property, true if it resolves the property.