Package edu.umd.cs.findbugs.detect
Class CheckTypeQualifiers
java.lang.Object
edu.umd.cs.findbugs.bcel.CFGDetector
edu.umd.cs.findbugs.detect.CheckTypeQualifiers
- All Implemented Interfaces:
Detector2
,Priorities
Check JSR-305 type qualifiers.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BugReporter
(package private) boolean
private String
private static final boolean
private static final boolean
private static final String
private static final String
private static final String
(package private) boolean
Fields inherited from class edu.umd.cs.findbugs.bcel.CFGDetector
classContext, method
Fields inherited from interface edu.umd.cs.findbugs.Priorities
EXP_PRIORITY, HIGH_PRIORITY, IGNORE_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
annotateWarningWithSourceSinkInfo
(BugInstance warning, XMethod xMethod, ValueNumber vn, SourceSinkInfo sourceSinkInfo) private void
annotateWarningWithTypeQualifier
(BugInstance warning, TypeQualifierValue<?> typeQualifierValue) private void
checkDataflow
(XMethod xmethod, CFG cfg, TypeQualifierValue<?> typeQualifierValue, ValueNumberDataflow vnaDataflow, ForwardTypeQualifierDataflow forwardDataflow, BackwardTypeQualifierDataflow backwardDataflow) private void
checkForConflictingValues
(XMethod xMethod, CFG cfg, TypeQualifierValue<?> typeQualifierValue, TypeQualifierValueSet forwardsFact, TypeQualifierValueSet backwardsFact, Location locationToReport, Location locationWhereDoomedValueIsObserved, ValueNumberFrame vnaFrame) private void
checkForEqualityTest
(XMethod xmethod, CFG cfg, TypeQualifierValue<?> typeQualifierValue, TypeQualifierValueSet forwardsFact, Location loc, ValueNumberFrame factAtLocation) private void
checkQualifier
(XMethod xmethod, CFG cfg, TypeQualifierValue<?> typeQualifierValue, ForwardTypeQualifierDataflowFactory forwardDataflowFactory, BackwardTypeQualifierDataflowFactory backwardDataflowFactory, ValueNumberDataflow vnaDataflow) Check a specific TypeQualifierValue on a method.private void
checkValueSources
(XMethod xMethod, CFG cfg, TypeQualifierValue<?> typeQualifierValue, ValueNumberDataflow vnaDataflow, ForwardTypeQualifierDataflow forwardDataflow, BackwardTypeQualifierDataflow backwardDataflow) private void
emitDataflowWarning
(XMethod xMethod, TypeQualifierValue<?> typeQualifierValue, TypeQualifierValueSet forwardsFact, TypeQualifierValueSet backwardsFact, ValueNumber vn, FlowValue forward, FlowValue backward, Location locationToReport, Location locationWhereDoomedValueIsObserved, ValueNumberFrame vnaFrame) private void
emitSourceWarning
(String bugType, XMethod xMethod, TypeQualifierValue<?> typeQualifierValue, FlowValue backwardsFlowValue, TypeQualifierValueSet backwardsFact, SourceSinkInfo source, ValueNumber vn, Location location) private Location
getEdgeSourceLocation
(CFG cfg, Edge edge) private Location
getEdgeTargetLocation
(CFG cfg, Edge edge) private Location
getSinkLocation
(SourceSinkInfo sourceSinkInfo) private Location
getSinkLocation
(Iterable<? extends SourceSinkInfo> info) void
visitClass
(ClassDescriptor classDescriptor) Visit a class.protected void
visitMethodCFG
(MethodDescriptor methodDescriptor, CFG cfg) Visit the CFG (control flow graph) of a method to be analyzed.Methods inherited from class edu.umd.cs.findbugs.bcel.CFGDetector
finishPass
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface edu.umd.cs.findbugs.Detector2
getDetectorClassName
-
Field Details
-
DEBUG
private static final boolean DEBUG -
DEBUG_DATAFLOW
private static final boolean DEBUG_DATAFLOW -
DEBUG_DATAFLOW_MODE
-
NONNULL_ANNOTATION
-
METHOD
-
bugReporter
-
checked
boolean checked -
shouldRunAnalysis
boolean shouldRunAnalysis -
checkLocation
-
-
Constructor Details
-
CheckTypeQualifiers
-
-
Method Details
-
visitClass
Description copied from interface:Detector2
Visit a class.- Specified by:
visitClass
in interfaceDetector2
- Overrides:
visitClass
in classCFGDetector
- Parameters:
classDescriptor
- descriptor naming the class to visit- Throws:
CheckedAnalysisException
- if an exception occurs during analysis
-
visitMethodCFG
protected void visitMethodCFG(MethodDescriptor methodDescriptor, CFG cfg) throws CheckedAnalysisException Description copied from class:CFGDetector
Visit the CFG (control flow graph) of a method to be analyzed. Should be overridden by subclasses.- Specified by:
visitMethodCFG
in classCFGDetector
- Parameters:
methodDescriptor
-cfg
-- Throws:
CheckedAnalysisException
-
checkQualifier
private void checkQualifier(XMethod xmethod, CFG cfg, TypeQualifierValue<?> typeQualifierValue, ForwardTypeQualifierDataflowFactory forwardDataflowFactory, BackwardTypeQualifierDataflowFactory backwardDataflowFactory, ValueNumberDataflow vnaDataflow) throws CheckedAnalysisException Check a specific TypeQualifierValue on a method.- Parameters:
xmethod
- MethodDescriptor of methodcfg
- CFG of methodtypeQualifierValue
- TypeQualifierValue to checkforwardDataflowFactory
- ForwardTypeQualifierDataflowFactory used to create forward dataflow analysis objectsbackwardDataflowFactory
- BackwardTypeQualifierDataflowFactory used to create backward dataflow analysis objectsvnaDataflow
- ValueNumberDataflow for the method- Throws:
CheckedAnalysisException
-
checkDataflow
private void checkDataflow(XMethod xmethod, CFG cfg, TypeQualifierValue<?> typeQualifierValue, ValueNumberDataflow vnaDataflow, ForwardTypeQualifierDataflow forwardDataflow, BackwardTypeQualifierDataflow backwardDataflow) throws CheckedAnalysisException - Throws:
CheckedAnalysisException
-
checkForEqualityTest
private void checkForEqualityTest(XMethod xmethod, CFG cfg, TypeQualifierValue<?> typeQualifierValue, TypeQualifierValueSet forwardsFact, Location loc, ValueNumberFrame factAtLocation) throws DataflowAnalysisException - Throws:
DataflowAnalysisException
-
checkValueSources
private void checkValueSources(XMethod xMethod, CFG cfg, TypeQualifierValue<?> typeQualifierValue, ValueNumberDataflow vnaDataflow, ForwardTypeQualifierDataflow forwardDataflow, BackwardTypeQualifierDataflow backwardDataflow) throws CheckedAnalysisException - Throws:
CheckedAnalysisException
-
getEdgeTargetLocation
-
getEdgeSourceLocation
-
checkForConflictingValues
private void checkForConflictingValues(XMethod xMethod, CFG cfg, TypeQualifierValue<?> typeQualifierValue, TypeQualifierValueSet forwardsFact, TypeQualifierValueSet backwardsFact, Location locationToReport, Location locationWhereDoomedValueIsObserved, ValueNumberFrame vnaFrame) throws CheckedAnalysisException - Throws:
CheckedAnalysisException
-
emitDataflowWarning
private void emitDataflowWarning(XMethod xMethod, TypeQualifierValue<?> typeQualifierValue, TypeQualifierValueSet forwardsFact, TypeQualifierValueSet backwardsFact, ValueNumber vn, FlowValue forward, FlowValue backward, Location locationToReport, @CheckForNull Location locationWhereDoomedValueIsObserved, ValueNumberFrame vnaFrame) throws CheckedAnalysisException - Throws:
CheckedAnalysisException
-
emitSourceWarning
private void emitSourceWarning(String bugType, XMethod xMethod, TypeQualifierValue<?> typeQualifierValue, FlowValue backwardsFlowValue, TypeQualifierValueSet backwardsFact, SourceSinkInfo source, ValueNumber vn, Location location) -
annotateWarningWithTypeQualifier
private void annotateWarningWithTypeQualifier(BugInstance warning, TypeQualifierValue<?> typeQualifierValue) -
annotateWarningWithSourceSinkInfo
private void annotateWarningWithSourceSinkInfo(BugInstance warning, XMethod xMethod, ValueNumber vn, SourceSinkInfo sourceSinkInfo) -
getSinkLocation
-
getSinkLocation
-