public class LockAnnotatedTypeFactory extends org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>
However, there are a number of other annotations used in conjunction with these annotations to enforce proper locking.
Modifier and Type | Field and Description |
---|---|
protected javax.lang.model.element.AnnotationMirror |
GUARDEDBY
Annotation constants
|
protected javax.lang.model.element.AnnotationMirror |
GUARDEDBYBOTTOM
Annotation constants
|
protected javax.lang.model.element.AnnotationMirror |
GUARDEDBYUNKNOWN
Annotation constants
|
protected javax.lang.model.element.AnnotationMirror |
GUARDSATISFIED
Annotation constants
|
protected java.lang.Class<? extends java.lang.annotation.Annotation> |
javax_GuardedBy |
protected java.lang.Class<? extends java.lang.annotation.Annotation> |
jcip_GuardedBy |
protected javax.lang.model.element.AnnotationMirror |
LOCKHELD
Annotation constants
|
protected javax.lang.model.element.AnnotationMirror |
LOCKPOSSIBLYHELD
Annotation constants
|
static java.lang.String |
NOT_EFFECTIVELY_FINAL
dependent type annotation error message for when the expression is not effectively final.
|
protected javax.lang.model.element.AnnotationMirror |
SIDEEFFECTFREE
Annotation constants
|
analysis, cfgVisualizer, defaults, dependentTypesHelper, emptyStore, FLOW_BY_DEFAULT, flowResult, flowResultAnalysisCaches, initializationStaticStore, initializationStore, methodInvocationStores, poly, regularExitStores, returnStatementStores, scannedClasses, transfer, treeAnnotator, typeAnnotator
checker, elements, fromExpressionTreeCache, fromMemberTreeCache, fromTypeTreeCache, ignoreUninferredTypeArguments, loader, processingEnv, qualHierarchy, reflectionResolver, root, shouldCache, trees, typeArgumentInference, typeFormatter, typeHierarchy, types, typeVarSubstitutor, uid, visitorState
Constructor and Description |
---|
LockAnnotatedTypeFactory(org.checkerframework.common.basetype.BaseTypeChecker checker) |
Modifier and Type | Method and Description |
---|---|
void |
addComputedTypeAnnotations(javax.lang.model.element.Element elt,
org.checkerframework.framework.type.AnnotatedTypeMirror type) |
void |
addComputedTypeAnnotations(Tree tree,
org.checkerframework.framework.type.AnnotatedTypeMirror type,
boolean useFlow) |
protected org.checkerframework.framework.util.dependenttypes.DependentTypesHelper |
createDependentTypesHelper() |
protected LockAnalysis |
createFlowAnalysis(java.util.List<org.checkerframework.javacutil.Pair<javax.lang.model.element.VariableElement,org.checkerframework.framework.flow.CFValue>> fieldValues) |
LockTransfer |
createFlowTransferFunction(org.checkerframework.framework.flow.CFAbstractAnalysis<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer> analysis) |
org.checkerframework.framework.type.QualifierHierarchy |
createQualifierHierarchy(org.checkerframework.framework.util.MultiGraphQualifierHierarchy.MultiGraphFactory factory) |
protected java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>> |
createSupportedTypeQualifiers() |
protected org.checkerframework.framework.type.treeannotator.TreeAnnotator |
createTreeAnnotator() |
org.checkerframework.javacutil.Pair<org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType,java.util.List<org.checkerframework.framework.type.AnnotatedTypeMirror>> |
methodFromUse(ExpressionTree tree,
javax.lang.model.element.ExecutableElement methodElt,
org.checkerframework.framework.type.AnnotatedTypeMirror receiverType) |
addCheckedCodeDefaults, addCheckedStandardDefaults, addComputedTypeAnnotations, addDefaultAnnotations, addTypeNameImplicit, addUncheckedCodeDefaults, addUncheckedStandardDefaults, analyze, analyze, applyInferredAnnotations, checkAndPerformFlowAnalysis, checkForDefaultQualifierInHierarchy, constructorFromUse, createAndInitQualifierDefaults, createCFGVisualizer, createQualifierDefaults, createQualifierPolymorphism, createTypeAnnotator, fromNewClass, getAnnotatedTypeLhs, getAnnotatedTypeLhsNoTypeVarDefault, getAnnotatedTypeRhsUnaryAssign, getAnnotatedTypeVarargsArray, getAnnotationFromJavaExpressionString, getAnnotationFromReceiver, getCFGVisualizer, getDependentTypesHelper, getEmptyStore, getFinalLocalValues, getFirstNodeOfKindForTree, getInferredValueFor, getMethodReturnType, getMethodReturnType, getNodesForTree, getReceiverFromJavaExpressionString, getRegularExitStore, getResultingTypeOfConstructorMemberReference, getReturnStatementStores, getShouldDefaultTypeVarLocals, getSortedQualifierNames, getStoreAfter, getStoreAfter, getStoreAfter, getStoreBefore, getStoreBefore, getStoreBefore, getSupportedMonotonicTypeQualifiers, getTypeFactoryOfSubchecker, handleCFGViz, methodFromUse, performFlowAnalysis, postDirectSuperTypes, postInit, preProcessClassTree, setRoot, typeVariablesFromUse
adaptGetClassReturnTypeToReceiver, addAliasedAnnotation, addAliasedAnnotation, addAliasedAnnotation, addAliasedAnnotation, addAliasedDeclAnnotation, addAnnotationFromFieldInvariant, addInheritedAnnotation, aliasedAnnotation, annotateInheritedFromClass, annotateInheritedFromClass, checkInvalidOptionsInferSignatures, createAnnotatedTypeFormatter, createAnnotationClassLoader, createAnnotationFormatter, createQualifierHierarchy, createQualifierHierarchy, createQualifierHierarchyFactory, createTypeArgumentInference, createTypeHierarchy, createTypeVariableSubstitutor, declarationFromElement, fromElement, fromElement, fromElement, getAnnotatedNullType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedTypeFormatter, getAnnotatedTypeFromTypeTree, getAnnotationFormatter, getAnnotationMirror, getAnnotationWithMetaAnnotation, getBoxedType, getBundledTypeQualifiersWithoutPolyAll, getBundledTypeQualifiersWithPolyAll, getCacheSize, getContext, getCurrentClassTree, getCurrentClassType, getCurrentMethodReceiver, getDeclAnnotation, getDeclAnnotationNoAliases, getDeclAnnotations, getDeclAnnotationWithMetaAnnotation, getElementUtils, getEnclosingMethod, getEnclosingType, getFieldInvariantAnnotationTree, getFieldInvariantDeclarationAnnotations, getFieldInvariants, getFnInterfaceFromTree, getFnInterfaceFromTree, getImplicitReceiverType, getNarrowedPrimitive, getPath, getProcessingEnv, getQualifierHierarchy, getReceiverType, getSelfType, getStringType, getSupportedTypeQualifiers, getTreeUtils, getTypeArgumentInference, getTypeHierarchy, getTypeVarSubstitutor, getUnboxedType, getUninferredWildcardType, getVisitorState, getWholeProgramInference, initializeReflectionResolution, isAnyEnclosingThisDeref, isFromByteCode, isFromStubFile, isMostEnclosingThisDeref, isSupportedQualifier, isWithinConstructor, parseStubFiles, postAsMemberOf, postProcessClassTree, postTypeVarSubstitution, setPathHack, toAnnotatedType, toString, type, widenToUpperBound
public static final java.lang.String NOT_EFFECTIVELY_FINAL
protected final javax.lang.model.element.AnnotationMirror LOCKHELD
protected final javax.lang.model.element.AnnotationMirror LOCKPOSSIBLYHELD
protected final javax.lang.model.element.AnnotationMirror SIDEEFFECTFREE
protected final javax.lang.model.element.AnnotationMirror GUARDEDBYUNKNOWN
protected final javax.lang.model.element.AnnotationMirror GUARDEDBY
protected final javax.lang.model.element.AnnotationMirror GUARDEDBYBOTTOM
protected final javax.lang.model.element.AnnotationMirror GUARDSATISFIED
protected final java.lang.Class<? extends java.lang.annotation.Annotation> jcip_GuardedBy
protected final java.lang.Class<? extends java.lang.annotation.Annotation> javax_GuardedBy
public LockAnnotatedTypeFactory(org.checkerframework.common.basetype.BaseTypeChecker checker)
protected org.checkerframework.framework.util.dependenttypes.DependentTypesHelper createDependentTypesHelper()
createDependentTypesHelper
in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>
protected java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>> createSupportedTypeQualifiers()
createSupportedTypeQualifiers
in class org.checkerframework.framework.type.AnnotatedTypeFactory
public org.checkerframework.framework.type.QualifierHierarchy createQualifierHierarchy(org.checkerframework.framework.util.MultiGraphQualifierHierarchy.MultiGraphFactory factory)
createQualifierHierarchy
in class org.checkerframework.framework.type.AnnotatedTypeFactory
protected LockAnalysis createFlowAnalysis(java.util.List<org.checkerframework.javacutil.Pair<javax.lang.model.element.VariableElement,org.checkerframework.framework.flow.CFValue>> fieldValues)
createFlowAnalysis
in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>
public LockTransfer createFlowTransferFunction(org.checkerframework.framework.flow.CFAbstractAnalysis<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer> analysis)
createFlowTransferFunction
in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>
public org.checkerframework.javacutil.Pair<org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType,java.util.List<org.checkerframework.framework.type.AnnotatedTypeMirror>> methodFromUse(ExpressionTree tree, javax.lang.model.element.ExecutableElement methodElt, org.checkerframework.framework.type.AnnotatedTypeMirror receiverType)
methodFromUse
in class org.checkerframework.framework.type.AnnotatedTypeFactory
protected org.checkerframework.framework.type.treeannotator.TreeAnnotator createTreeAnnotator()
createTreeAnnotator
in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>
public void addComputedTypeAnnotations(javax.lang.model.element.Element elt, org.checkerframework.framework.type.AnnotatedTypeMirror type)
addComputedTypeAnnotations
in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>
public void addComputedTypeAnnotations(Tree tree, org.checkerframework.framework.type.AnnotatedTypeMirror type, boolean useFlow)
addComputedTypeAnnotations
in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>