Package org.checkerframework.framework.type
Contains a way of representing the type of a program element that considers the type qualifiers
on that element (and ignores its Java type). The package additionally provides utilities for
obtaining and manipulating this type representation.
- See the Checker Framework Manual:
- How to write a checker plugin
-
Interface Summary Interface Description AnnotatedTypeFormatter Converts an AnnotatedTypeMirror mirror into a formatted string.TypeHierarchy Compares AnnotatedTypeMirrors for subtype relationships.ViewpointAdapter A viewpoint adapter. -
Class Summary Class Description AbstractViewpointAdapter Abstract utility class for performing viewpoint adaptation.AnnotatedTypeCopier AnnotatedTypeCopier is a visitor that deep copies an AnnotatedTypeMirror exactly, including any lazily initialized fields.AnnotatedTypeCopierWithReplacement Duplicates annotated types and replaces components according to a replacement map.AnnotatedTypeCopierWithReplacement.Visitor AnnotatedTypeCopier maintains a mapping of typeVisited => copyOfTypeVisited When a reference, typeVisited, is encountered again, it will use the recorded reference, copyOfTypeVisited, instead of generating a new copy of typeVisited.AnnotatedTypeFactory The methods of this class take an element or AST node, and return the annotated type as anAnnotatedTypeMirror
.AnnotatedTypeFactory.ParameterizedExecutableType The type for an instantiated generic method or constructor.AnnotatedTypeMirror Represents an annotated type in the Java programming language, including:primitive types
,declared types
(class and interface types),array types
,type variables
,wildcard type arguments
,executable types
(their signature and return types),intersection types
,union types
,the null type
, andpseudo-types
corresponding to packages and to the keywordvoid
.AnnotatedTypeMirror.AnnotatedArrayType Represents Array types in java.AnnotatedTypeMirror.AnnotatedDeclaredType Represents a declared type (whether class or interface).AnnotatedTypeMirror.AnnotatedExecutableType Represents a type of an executable.AnnotatedTypeMirror.AnnotatedIntersectionType Represents an intersection type.AnnotatedTypeMirror.AnnotatedNoType A pseudo-type used where no actual type is appropriate.AnnotatedTypeMirror.AnnotatedNullType Represents the null type.AnnotatedTypeMirror.AnnotatedPrimitiveType Represents a primitive type.AnnotatedTypeMirror.AnnotatedTypeVariable Represents a type variable.AnnotatedTypeMirror.AnnotatedUnionType AnnotatedTypeMirror.AnnotatedWildcardType Represents a wildcard type argument.AnnotatedTypeParameterBounds Represents upper and lower bounds, each an AnnotatedTypeMirror.AnnotatedTypeReplacer Replaces or adds all the annotations in the parameter with the annotations from the visited type.AnnotationClassLoader This class assists theAnnotatedTypeFactory
by reflectively looking up the list of annotation class names in each checker's qual directory, and then loading and returning it as a set of annotation classes.AsSuperVisitor BoundsInitializer BoundsInitializer creates AnnotatedTypeMirrors (without annotations) for the bounds of type variables and wildcards.DeclarationsIntoElements A helper class that puts the declaration annotations from a method declaration back into the corresponding Elements, so that they get stored in the bytecode by the compiler.DefaultAnnotatedTypeFormatter An AnnotatedTypeFormatter used by default by all AnnotatedTypeFactory (and therefore all annotated types).DefaultAnnotatedTypeFormatter.FormattingVisitor A scanning visitor that prints the entire AnnotatedTypeMirror passed to visit.DefaultInferredTypesApplier Utility class for applying the annotations inferred by dataflow to a given type.DefaultTypeHierarchy Default implementation of TypeHierarchy that implements the JLS specification with minor deviations as outlined by the Checker Framework manual.ElementAnnotationApplier Utility methods for adding the annotations that are stored in an Element to the type that represents that element (or a use of that Element).ElementQualifierHierarchy AQualifierHierarchy
where qualifiers may be represented by annotations with elements.EqualityAtmComparer Compares two annotated type mirrors for structural equality using only the primary annotations and underlying types of the two input types and their component types.GenericAnnotatedTypeFactory<Value extends CFAbstractValue<Value>,Store extends CFAbstractStore<Value,Store>,TransferFunction extends CFAbstractTransfer<Value,Store,TransferFunction>,FlowAnalysis extends CFAbstractAnalysis<Value,Store,TransferFunction>> A factory that extendsAnnotatedTypeFactory
to optionally use flow-sensitive qualifier inference.HashcodeAtmVisitor Computes the hashcode of an AnnotatedTypeMirror using the underlying type and primary annotations and the hash code of component types of AnnotatedTypeMirror.MostlyNoElementQualifierHierarchy AQualifierHierarchy
where qualifiers may be represented by annotations with elements, but most of the qualifiers do not have elements.NoElementQualifierHierarchy AQualifierHierarchy
where no qualifier has arguments; that is, no qualifier is represented by an annotation with elements.QualifierHierarchy Represents multiple type qualifier hierarchies.QualifierUpperBounds Class that computes and stores the qualifier upper bounds for type uses.StructuralEqualityComparer A visitor used to compare two type mirrors for "structural" equality.StructuralEqualityVisitHistory Stores the result ofStructuralEqualityComparer
for type arguments.SubtypeIsSubsetQualifierHierarchy AQualifierHierarchy
where, when a qualifier has arguments, the subtype relation is determined by a subset test on the elements (arguments).SubtypeIsSupersetQualifierHierarchy AQualifierHierarchy
where, when a qualifier has arguments, the subtype relation is determined by a superset test on the elements (arguments).SubtypeVisitHistory THIS CLASS IS DESIGNED FOR USE WITH DefaultTypeHierarchy, DefaultRawnessComparer, and StructuralEqualityComparer ONLY.SyntheticArrays SyntheticArrays exists solely to fix AnnotatedTypeMirrors that need to be adapted from Array type to a specific kind of array.TypesIntoElements A helper class that puts the annotations from an AnnotatedTypeMirrors back into the corresponding Elements, so that they get stored in the bytecode by the compiler.TypeVariableSubstitutor TypeVariableSubstitutor replaces type variables from a declaration with arguments to its use. -
Enum Summary Enum Description GenericAnnotatedTypeFactory.ScanState Track the state of org.checkerframework.dataflow analysis scanning for each class tree in the compilation unit.