As an example, consider the following method:
@EnsuresLTLengthOfIf(
expression = "end",
result = true,
targetValue = "array",
offset = "#1 - 1"
)
public boolean tryShiftIndex(@NonNegative int x) {
int newEnd = end - x;
if (newEnd < 0) {
return false;
}
end = newEnd;
return true;
}
Calling this function ensures that the field end of the this object is of type
@LTLengthOf(value = "array", offset = "x - 1"), for the value x that is passed as
the argument. This allows the Index Checker to verify that end + x is an index into
array in the following code:
public void useTryShiftIndex(@NonNegative int x) {
if (tryShiftIndex(x)) {
Arrays.fill(array, end, end + x, null);
}
}
LTLengthOf, EnsuresLTLengthOf
| Modifier and Type | Class and Description |
|---|---|
| public static @interface | EnsuresLTLengthOfIf.List
A wrapper annotation that makes the |
| Modifier and Type | Method and Description |
|---|---|
| public String[] | expression()
Java expression(s) that are less than the length of the given sequences after the method returns the given result. |
| public String[] | Returns: the offset expressionsThis expression plus each of the expressions is less than the length of the sequence after the method returns the given result. |
| public boolean | |
| public String[] | targetValue()
Sequences, each of which is longer than each of the expressions' value after the method returns the given result. |
| expression | back to summary |
|---|---|
| public String[] expression() Java expression(s) that are less than the length of the given sequences after the method returns the given result. | |
| offset | back to summary |
|---|---|
| public String[] offset() This expression plus each of the expressions is less than the length of the sequence after the
method returns the given result. The
| |
| result | back to summary |
|---|---|
| public boolean result() The return value of the method that needs to hold for the postcondition to hold. | |
| targetValue | back to summary |
|---|---|
| public String[] targetValue() Sequences, each of which is longer than each of the expressions' value after the method returns the given result.
| |
EnsuresLTLengthOfIf annotation repeatable.
Programmers generally do not need to write this. It is created by Java when a programmer
writes more than one EnsuresLTLengthOfIf annotation at the same location.
| Modifier and Type | Method and Description |
|---|---|
| public EnsuresLTLengthOfIf[] |
| value | back to summary |
|---|---|
| public EnsuresLTLengthOfIf[] value() Return the repeatable annotations.
| |