Class ResourceLeakTransfer
java.lang.Object
org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor<TransferResult<V,S>,TransferInput<V,S>>
   
org.checkerframework.framework.flow.CFAbstractTransfer<AccumulationValue,AccumulationStore,AccumulationTransfer>
  
org.checkerframework.common.accumulation.AccumulationTransfer
org.checkerframework.checker.calledmethods.CalledMethodsTransfer
org.checkerframework.checker.resourceleak.ResourceLeakTransfer
- All Implemented Interfaces:
- ForwardTransferFunction<AccumulationValue,,- AccumulationStore> - TransferFunction<AccumulationValue,,- AccumulationStore> - NodeVisitor<TransferResult<AccumulationValue,- AccumulationStore>, - TransferInput<AccumulationValue, - AccumulationStore>> 
The transfer function for the resource-leak extension to the called-methods type system.
- 
Field SummaryFields inherited from class org.checkerframework.checker.calledmethods.CalledMethodsTransferjavaLangExceptionTypeFields inherited from class org.checkerframework.common.accumulation.AccumulationTransferatypeFactoryFields inherited from class org.checkerframework.framework.flow.CFAbstractTransferanalysis, sequentialSemantics
- 
Constructor SummaryConstructorsConstructorDescriptionResourceLeakTransfer(ResourceLeakAnalysis analysis) Create a new resource leak transfer function.
- 
Method SummaryModifier and TypeMethodDescriptionvoidupdateStoreWithTempVar(TransferResult<AccumulationValue, AccumulationStore> result, Node node) This method either creates or looks up the temp var t for node, and then updates the store to give t the same type as node.visitMethodInvocation(MethodInvocationNode node, TransferInput<AccumulationValue, AccumulationStore> input) visitObjectCreation(ObjectCreationNode node, TransferInput<AccumulationValue, AccumulationStore> input) visitSwitchExpressionNode(SwitchExpressionNode node, TransferInput<AccumulationValue, AccumulationStore> input) visitTernaryExpression(TernaryExpressionNode node, TransferInput<AccumulationValue, AccumulationStore> input) Methods inherited from class org.checkerframework.checker.calledmethods.CalledMethodsTransferaccumulate, isWpiEnabledForRLC, shouldPerformWholeProgramInference, shouldPerformWholeProgramInferenceMethods inherited from class org.checkerframework.framework.flow.CFAbstractTransferaddInformationFromPreconditions, createTransferResult, createTransferResult, finishValue, finishValue, getNarrowedValue, getValueFromFactory, getWidenedValue, initialStore, insertIntoStores, isNotFullyInitializedReceiver, moreSpecificValue, processCommonAssignment, processConditionalPostconditions, processPostconditions, recreateTransferResult, recreateTransferResult, setFixedInitialStore, splitAssignments, strengthenAnnotationOfEqualTo, usesSequentialSemantics, visitArrayAccess, visitAssignment, visitCase, visitClassName, visitConditionalNot, visitDeconstructorPattern, visitEqualTo, visitExpressionStatement, visitFieldAccess, visitInstanceOf, visitLambdaResultExpression, visitLocalVariable, visitNarrowingConversion, visitNode, visitNotEqual, visitReturn, visitStringConversion, visitThis, visitVariableDeclaration, visitWideningConversionMethods inherited from class org.checkerframework.dataflow.cfg.node.AbstractNodeVisitorvisitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCharacterLiteral, visitClassDeclaration, visitConditionalAnd, visitConditionalOr, visitDoubleLiteral, visitExplicitThis, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThis, visitIntegerDivision, visitIntegerLiteral, visitIntegerRemainder, visitLeftShift, visitLessThan, visitLessThanOrEqual, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitPackageName, visitParameterizedType, visitPrimitiveType, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringLiteral, visitSuper, visitSynchronized, visitThrow, visitTypeCast, visitUnsignedRightShift, visitValueLiteralMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.checkerframework.dataflow.cfg.node.NodeVisitorvisitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCharacterLiteral, visitClassDeclaration, visitConditionalAnd, visitConditionalOr, visitDoubleLiteral, visitExplicitThis, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThis, visitIntegerDivision, visitIntegerLiteral, visitIntegerRemainder, visitLeftShift, visitLessThan, visitLessThanOrEqual, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitPackageName, visitParameterizedType, visitPrimitiveType, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringLiteral, visitSuper, visitSynchronized, visitThrow, visitTypeCast, visitUnsignedRightShift
- 
Constructor Details- 
ResourceLeakTransferCreate a new resource leak transfer function.- Parameters:
- analysis- the analysis. Its type factory must be a- ResourceLeakAnnotatedTypeFactory.
 
 
- 
- 
Method Details- 
visitTernaryExpressionpublic TransferResult<AccumulationValue,AccumulationStore> visitTernaryExpression(TernaryExpressionNode node, TransferInput<AccumulationValue, AccumulationStore> input) - Specified by:
- visitTernaryExpressionin interface- NodeVisitor<TransferResult<AccumulationValue,- AccumulationStore>, - TransferInput<AccumulationValue, - AccumulationStore>> 
- Overrides:
- visitTernaryExpressionin class- CFAbstractTransfer<AccumulationValue,- AccumulationStore, - AccumulationTransfer> 
 
- 
visitSwitchExpressionNodepublic TransferResult<AccumulationValue,AccumulationStore> visitSwitchExpressionNode(SwitchExpressionNode node, TransferInput<AccumulationValue, AccumulationStore> input) - Specified by:
- visitSwitchExpressionNodein interface- NodeVisitor<TransferResult<AccumulationValue,- AccumulationStore>, - TransferInput<AccumulationValue, - AccumulationStore>> 
- Overrides:
- visitSwitchExpressionNodein class- CFAbstractTransfer<AccumulationValue,- AccumulationStore, - AccumulationTransfer> 
 
- 
visitMethodInvocationpublic TransferResult<AccumulationValue,AccumulationStore> visitMethodInvocation(MethodInvocationNode node, TransferInput<AccumulationValue, AccumulationStore> input) - Specified by:
- visitMethodInvocationin interface- NodeVisitor<TransferResult<AccumulationValue,- AccumulationStore>, - TransferInput<AccumulationValue, - AccumulationStore>> 
- Overrides:
- visitMethodInvocationin class- CalledMethodsTransfer
 
- 
visitObjectCreationpublic TransferResult<AccumulationValue,AccumulationStore> visitObjectCreation(ObjectCreationNode node, TransferInput<AccumulationValue, AccumulationStore> input) - Specified by:
- visitObjectCreationin interface- NodeVisitor<TransferResult<AccumulationValue,- AccumulationStore>, - TransferInput<AccumulationValue, - AccumulationStore>> 
- Overrides:
- visitObjectCreationin class- CFAbstractTransfer<AccumulationValue,- AccumulationStore, - AccumulationTransfer> 
 
- 
updateStoreWithTempVarpublic void updateStoreWithTempVar(TransferResult<AccumulationValue, AccumulationStore> result, Node node) This method either creates or looks up the temp var t for node, and then updates the store to give t the same type as node. Temporary variables are supported for expressions throughout this checker (and the Must Call Checker) to enable refinement of their types. See the documentation ofMustCallConsistencyAnalyzerfor more details.- Parameters:
- node- the node to be assigned to a temporary variable
- result- the transfer result containing the store to be modified
 
 
-