Class UnresolvedCall
- java.lang.Object
-
- it.unive.lisa.program.cfg.statement.Statement
-
- it.unive.lisa.program.cfg.statement.Expression
-
- it.unive.lisa.program.cfg.statement.NaryExpression
-
- it.unive.lisa.program.cfg.statement.call.Call
-
- it.unive.lisa.program.cfg.statement.call.UnresolvedCall
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class it.unive.lisa.program.cfg.statement.call.Call
Call.CallType
-
-
Constructor Summary
Constructors Constructor Description UnresolvedCall(CFG cfg, CodeLocation location, Call.CallType callType, java.lang.String qualifier, java.lang.String targetName, EvaluationOrder order, Expression... parameters)
Builds the unresolved call, happening at the given location in the program.UnresolvedCall(CFG cfg, CodeLocation location, Call.CallType callType, java.lang.String qualifier, java.lang.String targetName, EvaluationOrder order, Type staticType, Expression... parameters)
Builds the unresolved call, happening at the given location in the program.UnresolvedCall(CFG cfg, CodeLocation location, Call.CallType callType, java.lang.String qualifier, java.lang.String targetName, Expression... parameters)
Builds the unresolved call, happening at the given location in the program.UnresolvedCall(CFG cfg, CodeLocation location, Call.CallType callType, java.lang.String qualifier, java.lang.String targetName, Type staticType, Expression... parameters)
Builds the unresolved call, happening at the given location in the program.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
compareCallAux(Call o)
Auxiliary method forStatement.compareTo(Statement)
that can safely assume that the two calls happen at the sameCodeLocation
, are instances of the same class, have the same parameters according to their implementation ofStatement.compareTo(Statement)
, and have all fields defined in theCall
class equal according to theirComparable.compareTo(Object)
.<A extends AbstractState<A>>
AnalysisState<A>forwardSemanticsAux(InterproceduralAnalysis<A> interprocedural, AnalysisState<A> state, ExpressionSet[] params, StatementStore<A> expressions)
Computes the forward semantics of the expression, after the semantics of all sub-expressions have been computed.-
Methods inherited from class it.unive.lisa.program.cfg.statement.call.Call
compareSameClassAndParams, equals, getCallType, getFullTargetName, getParameters, getQualifier, getSource, getTargetName, hashCode, parameterTypes, setSource, toString
-
Methods inherited from class it.unive.lisa.program.cfg.statement.NaryExpression
accept, backwardSemantics, backwardSemanticsAux, compareSameClass, forwardSemantics, getConstructName, getOrder, getStatementEvaluatedAfter, getStatementEvaluatedBefore, getSubExpressions
-
Methods inherited from class it.unive.lisa.program.cfg.statement.Expression
getMetaVariables, getParentStatement, getRootStatement, getStaticType, setParentStatement
-
Methods inherited from class it.unive.lisa.program.cfg.statement.Statement
compareTo, getCFG, getEvaluationPredecessor, getEvaluationSuccessor, getLocation, stopsExecution, throwsError
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface it.unive.lisa.program.cfg.ProgramPoint
getProgram
-
-
-
-
Constructor Detail
-
UnresolvedCall
public UnresolvedCall(CFG cfg, CodeLocation location, Call.CallType callType, java.lang.String qualifier, java.lang.String targetName, Expression... parameters)
Builds the unresolved call, happening at the given location in the program. The static type of this call isUntyped
. TheEvaluationOrder
of the parameter isLeftToRightEvaluation
.- Parameters:
cfg
- the cfg that this expression belongs tolocation
- the location where the expression is defined within the programcallType
- the call type of this callqualifier
- the optional qualifier of the call (can be null or empty - seeCall.getFullTargetName()
for more info)targetName
- the name of the target of this callparameters
- the parameters of this call
-
UnresolvedCall
public UnresolvedCall(CFG cfg, CodeLocation location, Call.CallType callType, java.lang.String qualifier, java.lang.String targetName, Type staticType, Expression... parameters)
Builds the unresolved call, happening at the given location in the program. TheEvaluationOrder
of the parameter isLeftToRightEvaluation
.- Parameters:
cfg
- the cfg that this expression belongs tolocation
- the location where the expression is defined within the programcallType
- the call type of this callqualifier
- the optional qualifier of the call (can be null or empty - seeCall.getFullTargetName()
for more info)targetName
- the name of the target of this callstaticType
- the static type of this callparameters
- the parameters of this call
-
UnresolvedCall
public UnresolvedCall(CFG cfg, CodeLocation location, Call.CallType callType, java.lang.String qualifier, java.lang.String targetName, EvaluationOrder order, Expression... parameters)
Builds the unresolved call, happening at the given location in the program. The static type of this call isUntyped
.- Parameters:
cfg
- the cfg that this expression belongs tolocation
- the location where the expression is defined within the programcallType
- the call type of this callqualifier
- the optional qualifier of the call (can be null or empty - seeCall.getFullTargetName()
for more info)targetName
- the name of the target of this callorder
- the evaluation order of the sub-expressionsparameters
- the parameters of this call
-
UnresolvedCall
public UnresolvedCall(CFG cfg, CodeLocation location, Call.CallType callType, java.lang.String qualifier, java.lang.String targetName, EvaluationOrder order, Type staticType, Expression... parameters)
Builds the unresolved call, happening at the given location in the program.- Parameters:
cfg
- the cfg that this expression belongs tolocation
- the location where the expression is defined within the programcallType
- the call type of this callqualifier
- the optional qualifier of the call (can be null or empty - seeCall.getFullTargetName()
for more info)targetName
- the name of the target of this callorder
- the evaluation order of the sub-expressionsstaticType
- the static type of this callparameters
- the parameters of this call
-
-
Method Detail
-
compareCallAux
protected int compareCallAux(Call o)
Description copied from class:Call
Auxiliary method forStatement.compareTo(Statement)
that can safely assume that the two calls happen at the sameCodeLocation
, are instances of the same class, have the same parameters according to their implementation ofStatement.compareTo(Statement)
, and have all fields defined in theCall
class equal according to theirComparable.compareTo(Object)
. This method is thus responsible for only comparing the implementation-specific fields.- Specified by:
compareCallAux
in classCall
- Parameters:
o
- the other call- Returns:
- a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object
-
forwardSemanticsAux
public <A extends AbstractState<A>> AnalysisState<A> forwardSemanticsAux(InterproceduralAnalysis<A> interprocedural, AnalysisState<A> state, ExpressionSet[] params, StatementStore<A> expressions) throws SemanticException
Description copied from class:NaryExpression
Computes the forward semantics of the expression, after the semantics of all sub-expressions have been computed. Meta variables from the sub-expressions will be forgotten after this call returns.- Specified by:
forwardSemanticsAux
in classNaryExpression
- Type Parameters:
A
- the type ofAbstractState
- Parameters:
interprocedural
- the interprocedural analysis of the program to analyzestate
- the state where the expression is to be evaluatedparams
- the symbolic expressions representing the computed values of the sub-expressions of this expressionexpressions
- the cache where analysis states of intermediate expressions are stored and that can be accessed to query for post-states of parameters expressions- Returns:
- the
AnalysisState
representing the abstract result of the execution of this expression - Throws:
SemanticException
- if something goes wrong during the computation
-
-