Class FormalParameter
java.lang.Object
org.checkerframework.dataflow.expression.JavaExpression
org.checkerframework.dataflow.expression.FormalParameter
A formal parameter, represented by its 1-based index.
LocalVariable represents a formal parameter expressed using its name.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final VariableElementThe element for this formal parameter.protected final intThe 1-based index.Fields inherited from class org.checkerframework.dataflow.expression.JavaExpression
type -
Constructor Summary
ConstructorsConstructorDescriptionFormalParameter(int index, VariableElement element) Creates a FormalParameter. -
Method Summary
Modifier and TypeMethodDescription<R,P> R accept(JavaExpressionVisitor<R, P> visitor, P p) Accept method of the visitor pattern.booleancontainsOfClass(Class<? extends JavaExpression> clazz) booleanReturns true if and only if this contains a JavaExpression that is syntactically equal toother.booleanReturns the element for this variable.intgetIndex()Returns the 1-based index of this formal parameter.inthashCode()booleanisDeterministic(AnnotationProvider provider) Returns true if the expression is deterministic.booleanReturns true if and only if the value this expression stands for cannot be changed (with respect to ==) by a method call.booleanReturns true if and only if the value this expression stands for cannot be changed by a method call, including changes to any of its fields.booleanReturns true if and only if the two Java expressions are syntactically identical.toString()Format this verbosely, for debugging.Methods inherited from class org.checkerframework.dataflow.expression.JavaExpression
atConstructorInvocation, atFieldAccess, atMethodBody, atMethodInvocation, atMethodInvocation, containsModifiableAliasOf, containsUnknown, fromArrayAccess, fromNode, fromNodeFieldAccess, fromTree, fromVariableTree, getFormalParameters, getImplicitReceiver, getParametersAsLocalVariables, getPseudoReceiver, getReceiver, getType, listContainsSyntacticEqualJavaExpression, listIsDeterministic, syntacticEqualsList
-
Field Details
-
index
protected final int indexThe 1-based index. -
element
The element for this formal parameter.
-
-
Constructor Details
-
FormalParameter
Creates a FormalParameter.- Parameters:
index- the 1-based indexelement- the element for the formal parameter
-
-
Method Details
-
equals
-
getIndex
public int getIndex()Returns the 1-based index of this formal parameter.- Returns:
- the 1-based index of this formal parameter
-
getElement
Returns the element for this variable.- Returns:
- the element for this variable
-
hashCode
public int hashCode() -
toString
-
toStringDebug
Description copied from class:JavaExpressionFormat this verbosely, for debugging.- Overrides:
toStringDebugin classJavaExpression- Returns:
- a verbose string representation of this
-
containsOfClass
- Specified by:
containsOfClassin classJavaExpression
-
syntacticEquals
Description copied from class:JavaExpressionReturns true if and only if the two Java expressions are syntactically identical.This exists for use by
JavaExpression.containsSyntacticEqualJavaExpression(org.checkerframework.dataflow.expression.JavaExpression).- Specified by:
syntacticEqualsin classJavaExpression- Parameters:
je- the other Java expression to compare to this one- Returns:
- true if and only if the two Java expressions are syntactically identical
-
containsSyntacticEqualJavaExpression
Description copied from class:JavaExpressionReturns true if and only if this contains a JavaExpression that is syntactically equal toother.- Specified by:
containsSyntacticEqualJavaExpressionin classJavaExpression- Parameters:
other- the JavaExpression to search for- Returns:
- true if and only if this contains a JavaExpression that is syntactically equal to
other
-
isUnassignableByOtherCode
public boolean isUnassignableByOtherCode()Description copied from class:JavaExpressionReturns true if and only if the value this expression stands for cannot be changed (with respect to ==) by a method call. This is the case for local variables, the self reference, final field accesses whose receiver isJavaExpression.isUnassignableByOtherCode(), and operations whose operands are allJavaExpression.isUnmodifiableByOtherCode().- Specified by:
isUnassignableByOtherCodein classJavaExpression- See Also:
-
isUnmodifiableByOtherCode
public boolean isUnmodifiableByOtherCode()Description copied from class:JavaExpressionReturns true if and only if the value this expression stands for cannot be changed by a method call, including changes to any of its fields.Approximately, this returns true if the expression is
JavaExpression.isUnassignableByOtherCode()and its type is immutable.- Specified by:
isUnmodifiableByOtherCodein classJavaExpression- See Also:
-
isDeterministic
Description copied from class:JavaExpressionReturns true if the expression is deterministic.- Specified by:
isDeterministicin classJavaExpression- Parameters:
provider- an annotation provider (a type factory)- Returns:
- true if this expression is deterministic
-
accept
Description copied from class:JavaExpressionAccept method of the visitor pattern.- Specified by:
acceptin classJavaExpression- Type Parameters:
R- result type of the operationP- parameter type- Parameters:
visitor- the visitor to be applied to this JavaExpressionp- the parameter for this operation- Returns:
- the result of visiting this
-