blob: b500dbb955eb64fd86d22e0de895b28f58358071 [file] [log] [blame]
import org.checkerframework.common.initializedfields.qual.EnsuresInitializedFields;
// import org.checkerframework.common.initializedfields.qual.InitializedFields;
public class EnsuresInitializedFieldsTest {
int x;
int y;
int z;
EnsuresInitializedFieldsTest() {
x = 1;
y = 2;
z = 3;
}
@EnsuresInitializedFields(
value = "this",
fields = {"x", "y"})
// :: error: (contracts.postcondition)
void setsX() {
x = 1;
}
@EnsuresInitializedFields(fields = {"x", "y"})
// :: error: (contracts.postcondition)
void setsX2() {
x = 1;
}
@EnsuresInitializedFields(
value = "#1",
fields = {"x", "y"})
// :: error: (contracts.postcondition)
void setsX(EnsuresInitializedFieldsTest eift) {
eift.x = 1;
}
@EnsuresInitializedFields(
value = "this",
fields = {"x", "y"})
void setsXY() {
x = 1;
y = 2;
}
@EnsuresInitializedFields(fields = {"x", "y"})
void setsXY2() {
x = 1;
y = 2;
}
@EnsuresInitializedFields(
value = "#1",
fields = {"x", "y"})
void setsXY(EnsuresInitializedFieldsTest eift) {
eift.x = 1;
eift.y = 2;
}
@EnsuresInitializedFields(
value = "#1",
fields = {"x", "y"})
void setsXY2(EnsuresInitializedFieldsTest eift) {
setsXY(eift);
}
@EnsuresInitializedFields(
value = "#1",
fields = {"x", "y"})
@EnsuresInitializedFields(
value = "#2",
fields = {"x", "z"})
void setsXY2(EnsuresInitializedFieldsTest eift1, EnsuresInitializedFieldsTest eift2) {
setsXY(eift1);
setsX(eift2);
eift2.z = 3;
}
}