DefaultTypeCheckingExtension (groovy 2.4.9 API)
Date: 2017-02-24

Package: org.codehaus.groovy.transform.stc

## [Java] Class DefaultTypeCheckingExtension

- org.codehaus.groovy.transform.stc.DefaultTypeCheckingExtension

- The default type checking handler is used by the standard type checker and doesn't handle any of the type checking errors by default. This just means that whenever a type checking error is detected, there's no additional information available to the type checker that could help it. The default handler is also capable of handling a collection of delegate handlers. If a list of delegates is set, then the type checker will try all the delegates until one is capable of handling an error.

  Authors:
    Cedric Champeau
  Since:
    2.1.0

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `protected List<TypeCheckingExtension>` | `handlers` |

  - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class TypeCheckingExtension` | `typeCheckingVisitor`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `DefaultTypeCheckingExtension (StaticTypeCheckingVisitor typeCheckingVisitor)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `void` | `addHandler(TypeCheckingExtension handler)`
    `` | `void` | `afterMethodCall(MethodCall call)`
    `` | `void` | `afterVisitClass(ClassNode node)`
    `` | `void` | `afterVisitMethod(MethodNode node)`
    `` | `boolean` | `beforeMethodCall(MethodCall call)`
    `` | `boolean` | `beforeVisitClass(ClassNode node)`
    `` | `boolean` | `beforeVisitMethod(MethodNode node)`
    `` | `void` | `finish()`
    `` | `List<MethodNode>` | `handleAmbiguousMethods(List<MethodNode> nodes, Expression origin)`
    `` | `boolean` | `handleIncompatibleAssignment(ClassNode lhsType, ClassNode rhsType, Expression assignmentExpression)`
    `` | `boolean` | `handleIncompatibleReturnType(ReturnStatement returnStatement, ClassNode inferredReturnType)`
    `` | `List<MethodNode>` | `handleMissingMethod(ClassNode receiver, String name, ArgumentListExpression argumentList, ClassNode[] argumentTypes, MethodCall call)`
    `` | `boolean` | `handleUnresolvedAttribute(AttributeExpression aexp)`
    `` | `boolean` | `handleUnresolvedProperty(PropertyExpression pexp)`
    `` | `boolean` | `handleUnresolvedVariableExpression(VariableExpression vexp)`
    `` | `void` | `onMethodSelection(Expression expression, MethodNode target)`
    `` | `void` | `removeHandler(TypeCheckingExtension handler)`
    `` | `void` | `setup()`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class TypeCheckingExtension` | `addStaticTypeError, afterMethodCall, afterVisitClass, afterVisitMethod, beforeMethodCall, beforeVisitClass, beforeVisitMethod, buildListType, buildMapType, classNodeFor, classNodeFor, existsProperty, existsProperty, extractStaticReceiver, finish, getArgumentTypes, getTargetMethod, getType, handleAmbiguousMethods, handleIncompatibleAssignment, handleIncompatibleReturnType, handleMissingMethod, handleUnresolvedAttribute, handleUnresolvedProperty, handleUnresolvedVariableExpression, isStaticMethodCallOnClass, lookupClassNodeFor, onMethodSelection, parameterizedType, setup, storeType`
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Field Detail

    - #### protected final List<TypeCheckingExtension> handlers

  - ### Constructor Detail

    - #### public DefaultTypeCheckingExtension(StaticTypeCheckingVisitor typeCheckingVisitor)

  - ### Method Detail

    - #### public void addHandler(TypeCheckingExtension handler)

    - #### @Override public void afterMethodCall(MethodCall call)

    - #### @Override public void afterVisitClass(ClassNode node)

    - #### @Override public void afterVisitMethod(MethodNode node)

    - #### @Override public boolean beforeMethodCall(MethodCall call)

    - #### @Override public boolean beforeVisitClass(ClassNode node)

    - #### @Override public boolean beforeVisitMethod(MethodNode node)

    - #### @Override public void finish()

    - #### @Override public List<MethodNode> handleAmbiguousMethods(List<MethodNode> nodes, Expression origin)

    - #### @Override public boolean handleIncompatibleAssignment(ClassNode lhsType, ClassNode rhsType, Expression assignmentExpression)

    - #### @Override public boolean handleIncompatibleReturnType(ReturnStatement returnStatement, ClassNode inferredReturnType)

    - #### public List<MethodNode> handleMissingMethod(ClassNode receiver, String name, ArgumentListExpression argumentList, ClassNode[] argumentTypes, MethodCall call)

    - #### public boolean handleUnresolvedAttribute(AttributeExpression aexp)

    - #### public boolean handleUnresolvedProperty(PropertyExpression pexp)

    - #### public boolean handleUnresolvedVariableExpression(VariableExpression vexp)

    - #### @Override public void onMethodSelection(Expression expression, MethodNode target)

    - #### public void removeHandler(TypeCheckingExtension handler)

    - #### @Override public void setup()