Class FormalParameter
- java.lang.Object
-
- org.checkerframework.dataflow.expression.JavaExpression
-
- org.checkerframework.dataflow.expression.FormalParameter
-
public class FormalParameter extends JavaExpression
A formal parameter, represented by its 1-based index.LocalVariablerepresents a formal parameter expressed using its name.
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.lang.model.element.VariableElementelementThe element for this formal parameter.protected intindexThe 1-based index.-
Fields inherited from class org.checkerframework.dataflow.expression.JavaExpression
type
-
-
Constructor Summary
Constructors Constructor Description FormalParameter(int index, javax.lang.model.element.VariableElement element)Creates a FormalParameter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <R,P>
Raccept(JavaExpressionVisitor<R,P> visitor, P p)Accept method of the visitor pattern.booleancontainsOfClass(java.lang.Class<? extends JavaExpression> clazz)booleancontainsSyntacticEqualJavaExpression(JavaExpression other)Returns true if and only if this contains a JavaExpression that is syntactically equal toother.booleanequals(@Nullable java.lang.Object obj)javax.lang.model.element.VariableElementgetElement()Returns 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.booleanisUnassignableByOtherCode()Returns true if and only if the value this expression stands for cannot be changed (with respect to ==) by a method call.booleanisUnmodifiableByOtherCode()Returns 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.booleansyntacticEquals(JavaExpression je)Returns true if and only if the two Java expressions are syntactically identical.java.lang.StringtoString()java.lang.StringtoStringDebug()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
-
-
-
-
Method Detail
-
equals
public boolean equals(@Nullable java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
getIndex
public int getIndex()
Returns the 1-based index of this formal parameter.- Returns:
- the 1-based index of this formal parameter
-
getElement
public javax.lang.model.element.VariableElement getElement()
Returns the element for this variable.- Returns:
- the element for this variable
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
toStringDebug
public java.lang.String toStringDebug()
Description copied from class:JavaExpressionFormat this verbosely, for debugging.- Overrides:
toStringDebugin classJavaExpression- Returns:
- a verbose string representation of this
-
containsOfClass
public boolean containsOfClass(java.lang.Class<? extends JavaExpression> clazz)
- Specified by:
containsOfClassin classJavaExpression
-
syntacticEquals
public boolean syntacticEquals(JavaExpression je)
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
public boolean containsSyntacticEqualJavaExpression(JavaExpression other)
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:
JavaExpression.isUnmodifiableByOtherCode()
-
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:
JavaExpression.isUnassignableByOtherCode()
-
isDeterministic
public boolean isDeterministic(AnnotationProvider provider)
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
public <R,P> R accept(JavaExpressionVisitor<R,P> visitor, P p)
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
-
-