# Package org.codehaus.groovy.transform.stc

package org.codehaus.groovy.transform.stc
Static type checking transformation. Detects type errors at compile time.

- Related Packages
  Package
  Description
  org.codehaus.groovy.transform
  AST transformation framework.
  org.codehaus.groovy.transform.sc
  Static compilation transformation.
  org.codehaus.groovy.transform.tailrec
  Tail recursion optimization.
  org.codehaus.groovy.transform.trait
  Trait transformation.
- Class
  Description
  AbstractExtensionMethodCache
  AbstractTypeCheckingExtension
  Custom type checking extensions may extend this method in order to benefit from a lot of support methods.
  AbstractTypeCheckingExtension.TypeCheckingScope
  Map-backed scope used to share data across extension callbacks.
  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.
  EnumTypeCheckingExtension
  A type checking extension that will take care of handling errors which are specific to enums.
  ExtensionMethodCache
  This class is used to make extension methods lookup faster.
  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` isLambdaExpression Determines if argument is a `LambdaExpression` 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` isMethodReferenceExpression Determines if argument is a `MethodReferenceExpression` 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>
  Describes a method-call receiver together with optional auxiliary data.
  SharedVariableCollector
  A visitor which collects the list of variable expressions which are closure shared.
  SignatureCodec
  A signature codec is responsible for encoding and decoding of inferred returned types as stored in bytecode.
  SignatureCodecVersion1
  First implementation of an inferred type signature codec.
  StaticTypeCheckingSupport
  Support methods for `StaticTypeCheckingVisitor`.
  StaticTypeCheckingSupport.BooleanArrayStaticTypesHelper
  DGM-like helpers for `boolean[]` access.
  StaticTypeCheckingSupport.ByteArrayStaticTypesHelper
  DGM-like helpers for `byte[]` access.
  StaticTypeCheckingSupport.CharArrayStaticTypesHelper
  DGM-like helpers for `char[]` access.
  StaticTypeCheckingSupport.DoubleArrayStaticTypesHelper
  DGM-like helpers for `double[]` access.
  StaticTypeCheckingSupport.FloatArrayStaticTypesHelper
  DGM-like helpers for `float[]` access.
  StaticTypeCheckingSupport.IntArrayStaticTypesHelper
  DGM-like helpers for `int[]` access.
  StaticTypeCheckingSupport.LongArrayStaticTypesHelper
  DGM-like helpers for `long[]` access.
  StaticTypeCheckingSupport.ObjectArrayStaticTypesHelper
  DGM-like helpers for object arrays.
  StaticTypeCheckingSupport.ShortArrayStaticTypesHelper
  DGM-like helpers for `short[]` access.
  StaticTypeCheckingVisitor
  The main class code visitor responsible for static type checking.
  StaticTypeCheckingVisitor.SignatureCodecFactory
  Creates signature codecs for serialized type checking metadata.
  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.
  TraitTypeCheckingExtension
  An extension that handles field, super and static method calls within a trait.
  TypeCheckingContext
  Holds mutable state shared across a static type-checking visit.
  TypeCheckingContext.EnclosingClosure
  Represents the context of an enclosing closure.
  TypeCheckingExtension
  This interface defines a high-level API for handling type checking errors.