# Package org.codehaus.groovy.transform.stc

- Interface Summary
  Interface | Description
  --- | ---
  SignatureCodec | A signature codec is responsible for encoding and decoding of inferred returned types as stored in bytecode.

- Class Summary
  Class | Description
  --- | ---
  AbstractTypeCheckingExtension | Custom type checking extensions may extend this method in order to benefit from a lot of support methods.
  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.
  ExtensionMethodNode | Represents method nodes which are used by the static type checker to virtually add methods coming from `DGM-like` methods.
  GroovyTypeCheckingExtensionSupport | Base class for type checking extensions written in Groovy.
  GroovyTypeCheckingExtensionSupport.TypeCheckingDSL | Event handler registration: setup Registers closure that runs after the type checker finishes initialization finish Registers closure that runs after the type checker completes type checking beforeVisitClass Registers closure that runs before type checking a class afterVisitClass Registers closure that runs after having finished the visit of a type checked class beforeVisitMethod Registers closure that runs before type checking a method body afterVisitMethod Registers closure that runs after type checking a method body beforeMethodCall Registers closure that runs before the type checker starts type checking a method call afterMethodCall Registers closure that runs once the type checker has finished type checking a method call methodNotFound Registers closure that runs when it fails to find an appropriate method for a method call ambiguousMethods Registers closure that runs when the type checker cannot choose between several candidate methods onMethodSelection Registers closure that runs when it finds a method appropriate for a method call unresolvedVariable Registers closure that runs when the type checker finds an unresolved variable unresolvedProperty Registers closure that runs when the type checker cannot find a property on the receiver unresolvedAttribute Registers closure that runs when the type checker cannot find an attribute on the receiver incompatibleAssignment Registers closure that runs when the type checker thinks that the right-hand side of an assignment is incompatible with the left-hand side incompatibleReturnType Registers closure that runs when the type checker thinks that a return value is incompatibe with the return type Expression categorization: isAnnotationConstantExpression Determines if argument is an `AnnotationConstantExpression` isArgumentListExpression Determines if argument is an `ArgumentListExpression` isArrayExpression Determines if argument is an `ArrayExpression` isAttributeExpression Determines if argument is an `AttributeExpression` isBinaryExpression Determines if argument is a `BinaryExpression` isBitwiseNegationExpression Determines if argument is a `BitwiseNegationExpression` isBooleanExpression Determines if argument is a `BooleanExpression` isCastExpression Determines if argument is a `CastExpression` isClassExpression Determines if argument is a `ClassExpression` isClosureExpression Determines if argument is a `ClosureExpression` isConstantExpression Determines if argument is a `ConstantExpression` isConstructorCallExpression Determines if argument is a `ConstructorCallExpression` isDeclarationExpression Determines if argument is a `DeclarationExpression` isElvisOperatorExpression Determines if argument is an `ElvisOperatorExpression` isEmptyExpression Determines if argument is an `EmptyExpression` isFieldExpression Determines if argument is a `FieldExpression` isGStringExpression Determines if argument is a `GStringExpression` isListExpression Determines if argument is a `ListExpression` isMapExpression Determines if argument is a `MapExpression` isMapEntryExpression Determines if argument is a `MapEntryExpression` isMethodCallExpression Determines if argument is a `MethodCallExpression` isMethodPointerExpression Determines if argument is a `MethodPointerExpression` isNamedArgumentListExpression Determines if argument is a `NamedArgumentListExpression` isNotExpression Determines if argument is a `NotExpression` isPostfixExpression Determines if argument is a `PostfixExpression` isPrefixExpression Determines if argument is a `PrefixExpression` isPropertyExpression Determines if argument is a `PropertyExpression` isRangeExpression Determines if argument is a `RangeExpression` isSpreadExpression Determines if argument is a `SpreadExpression` isSpreadMapExpression Determines if argument is a `SpreadMapExpression` isStaticMethodCallExpression Determines if argument is a `StaticMethodCallExpression` isTernaryExpression Determines if argument is a `TernaryExpression` isTupleExpression Determines if argument is a `TupleExpression` isUnaryMinusExpression Determines if argument is a `UnaryMinusExpression` isUnaryPlusExpression Determines if argument is a `UnaryPlusExpression` isVariableExpression Determines if argument is a `VariableExpression` General utility: Delegates to `AbstractTypeCheckingExtension` Imports static members of `ClassHelper` Imports static members of `StaticTypeCheckingSupport`
  Receiver<T> |
  SharedVariableCollector | A visitor which collects the list of variable expressions which are closure shared.
  SignatureCodecVersion1 | First implementation of an inferred type signature codec.
  StaticTypeCheckingSupport | Support methods for `StaticTypeCheckingVisitor`.
  StaticTypeCheckingVisitor | The main class code visitor responsible for static type checking.
  StaticTypeCheckingVisitor.SignatureCodecFactory |
  TraitTypeCheckingExtension | A type checking extension that will take care of handling errors which are specific to traits.
  TypeCheckingContext |
  TypeCheckingContext.EnclosingClosure | Represents the context of an enclosing closure.
  TypeCheckingExtension | This interface defines a high-level API for handling type checking errors.

- Enum Summary
  Enum | Description
  --- | ---
  StaticTypesMarker | This enumeration is used by the AST transformations which rely on static type checking, either to store or to retrieve information from AST node metadata.