Package org.codehaus.groovy.transform.stc

# Enum Class StaticTypesMarker

java.lang.Object
java.lang.Enum<StaticTypesMarker>
org.codehaus.groovy.transform.stc.StaticTypesMarker

All Implemented Interfaces:
  `Serializable`, `Comparable<StaticTypesMarker>`, `Constable`

public enum StaticTypesMarker extends Enum<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. The values of this enumeration are used as metadata keys.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `CLOSURE_ARGUMENTS`
  used to store expected closure argument types on an expression
  `COMPOUND_ASSIGN_TARGET`
  GEP-15: stores the resolved compound-assignment `MethodNode` (e.g.
  `DECLARATION_INFERRED_TYPE`
  in flow analysis, represents the type of the declaration node LHS
  `DELEGATION_METADATA`
  used to store the delegation strategy and delegate type of a closure derived from `DelegatesTo` metadata
  `DIRECT_METHOD_CALL_TARGET`
  used to store the MethodNode a MethodCallExpression should target
  `DYNAMIC_RESOLUTION`
  call recognized by a type checking extension as a dynamic method call
  `IMPLICIT_RECEIVER`
  if the receiver is implicit but not "this", store the name of the receiver (delegate or owner)
  `INFERRED_NON_NULL`
  indicates a parameter or method return is known to be non-null (e.g., inferred from `@Requires`/`@Ensures` contracts)
  `INFERRED_NON_NULL_RETURN_VIOLATIONS`
  list of `return null` statements recorded on a method before its body is rewritten, so a downstream checker can still report them as non-null violations
  `INFERRED_RETURN_TYPE`
  used to store inferred return type for methods and closures
  `INFERRED_TYPE`
  used to store type information on class nodes
  `INITIAL_EXPRESSION`
  used to store the default expression for a parameter
  `LAMBDA_MARKERS`
  GROOVY-11998: for an intersection cast on a lambda, method reference or closure, the additional marker interfaces to thread to `LambdaMetafactory.altMetafactory`
  `METHOD_REFERENCE_TYPE`
  marks a method-reference (`::`) argument type so overload selection prefers a functional-interface parameter over a `Closure` parameter: as a call argument a method reference is coerced only to a functional interface, so a `Closure` overload does not apply (unlike assignment, where `Closure<?> c = Foo::bar` is valid)
  `PARAMETER_TYPE`
  used to store the parameter type of method invocation on an expression
  `PRIMARY_FUNCTIONAL_TYPE`
  GROOVY-11998: for an intersection-cast lambda or method reference, the SAM-bearing component picked from the intersection
  `PV_FIELDS_ACCESS`
  set of private fields that are accessed from closures or inner classes
  `PV_FIELDS_MUTATION`
  set of private fields that are set from closures or inner classes
  `PV_METHODS_ACCESS`
  set of private methods that are accessed from closures or inner classes
  `READONLY_PROPERTY`
  used to tell that a property expression refers to a read-only property
  `SUPER_MOP_METHOD_REQUIRED`
  used to store the list of MOP methods that still have to be generated
  `SWITCH_CONDITION_EXPRESSION_TYPE`
  used to store the condition expression type of the switch-case statement
  `TYPE`
  used to store the result of `StaticTypeCheckingVisitor.getType(org.codehaus.groovy.ast.ASTNode)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static StaticTypesMarker`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static StaticTypesMarker[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

  ### Methods inherited from class java.lang.Enum

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

  ### Methods inherited from class java.lang.Object

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### INFERRED_TYPE

    public static final StaticTypesMarker INFERRED_TYPE
    used to store type information on class nodes

  - ### DECLARATION_INFERRED_TYPE

    public static final StaticTypesMarker DECLARATION_INFERRED_TYPE
    in flow analysis, represents the type of the declaration node LHS

  - ### INFERRED_RETURN_TYPE

    public static final StaticTypesMarker INFERRED_RETURN_TYPE
    used to store inferred return type for methods and closures

  - ### CLOSURE_ARGUMENTS

    public static final StaticTypesMarker CLOSURE_ARGUMENTS
    used to store expected closure argument types on an expression

  - ### READONLY_PROPERTY

    public static final StaticTypesMarker READONLY_PROPERTY
    used to tell that a property expression refers to a read-only property

  - ### INITIAL_EXPRESSION

    public static final StaticTypesMarker INITIAL_EXPRESSION
    used to store the default expression for a parameter

  - ### DIRECT_METHOD_CALL_TARGET

    public static final StaticTypesMarker DIRECT_METHOD_CALL_TARGET
    used to store the MethodNode a MethodCallExpression should target

  - ### DELEGATION_METADATA

    public static final StaticTypesMarker DELEGATION_METADATA
    used to store the delegation strategy and delegate type of a closure derived from `DelegatesTo` metadata

  - ### IMPLICIT_RECEIVER

    public static final StaticTypesMarker IMPLICIT_RECEIVER
    if the receiver is implicit but not "this", store the name of the receiver (delegate or owner)

  - ### PV_FIELDS_ACCESS

    public static final StaticTypesMarker PV_FIELDS_ACCESS
    set of private fields that are accessed from closures or inner classes

  - ### PV_FIELDS_MUTATION

    public static final StaticTypesMarker PV_FIELDS_MUTATION
    set of private fields that are set from closures or inner classes

  - ### PV_METHODS_ACCESS

    public static final StaticTypesMarker PV_METHODS_ACCESS
    set of private methods that are accessed from closures or inner classes

  - ### DYNAMIC_RESOLUTION

    public static final StaticTypesMarker DYNAMIC_RESOLUTION
    call recognized by a type checking extension as a dynamic method call

  - ### SUPER_MOP_METHOD_REQUIRED

    public static final StaticTypesMarker SUPER_MOP_METHOD_REQUIRED
    used to store the list of MOP methods that still have to be generated

  - ### PARAMETER_TYPE

    public static final StaticTypesMarker PARAMETER_TYPE
    used to store the parameter type of method invocation on an expression

  - ### SWITCH_CONDITION_EXPRESSION_TYPE

    public static final StaticTypesMarker SWITCH_CONDITION_EXPRESSION_TYPE
    used to store the condition expression type of the switch-case statement

  - ### TYPE

    public static final StaticTypesMarker TYPE
    used to store the result of `StaticTypeCheckingVisitor.getType(org.codehaus.groovy.ast.ASTNode)`

  - ### INFERRED_NON_NULL

    public static final StaticTypesMarker INFERRED_NON_NULL
    indicates a parameter or method return is known to be non-null (e.g., inferred from `@Requires`/`@Ensures` contracts)

  - ### INFERRED_NON_NULL_RETURN_VIOLATIONS

    public static final StaticTypesMarker INFERRED_NON_NULL_RETURN_VIOLATIONS
    list of `return null` statements recorded on a method before its body is rewritten, so a downstream checker can still report them as non-null violations

  - ### COMPOUND_ASSIGN_TARGET

    public static final StaticTypesMarker COMPOUND_ASSIGN_TARGET
    GEP-15: stores the resolved compound-assignment `MethodNode` (e.g. `plusAssign`) on a `BinaryExpression` when the static type checker has located one, signalling to codegen that the receiver should be mutated in place rather than `x = x.plus(y)`-desugared

  - ### PRIMARY_FUNCTIONAL_TYPE

    public static final StaticTypesMarker PRIMARY_FUNCTIONAL_TYPE
    GROOVY-11998: for an intersection-cast lambda or method reference, the SAM-bearing component picked from the intersection

  - ### LAMBDA_MARKERS

    public static final StaticTypesMarker LAMBDA_MARKERS
    GROOVY-11998: for an intersection cast on a lambda, method reference or closure, the additional marker interfaces to thread to `LambdaMetafactory.altMetafactory`

  - ### METHOD_REFERENCE_TYPE

    public static final StaticTypesMarker METHOD_REFERENCE_TYPE
    marks a method-reference (`::`) argument type so overload selection prefers a functional-interface parameter over a `Closure` parameter: as a call argument a method reference is coerced only to a functional interface, so a `Closure` overload does not apply (unlike assignment, where `Closure<?> c = Foo::bar` is valid)

- ## Method Details

  - ### values

    public static StaticTypesMarker[] values()
    Returns an array containing the constants of this enum class, in the order they are declared.
    Returns:
      an array containing the constants of this enum class, in the order they are declared

  - ### valueOf

    public static StaticTypesMarker valueOf(String name)
    Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum class has no constant with the specified name
      `NullPointerException` - if the argument is null