import org.checkerframework.checker.signedness.qual.*;
public class CompoundAssignments {
public void DivModTest(
@Unsigned int unsigned, @UnknownSignedness int unknown, @Constant int constant) {
//:: error: (compound.assignment.unsigned.expression)
unknown /= unsigned;
//:: error: (compound.assignment.unsigned.variable)
unsigned /= constant;
//:: error: (compound.assignment.unsigned.expression)
unknown %= unsigned;
//:: error: (compound.assignment.unsigned.variable)
unsigned %= constant;
}
public void SignedRightShiftTest(@Unsigned int unsigned, @Constant int constant) {
//:: error: (compound.assignment.shift.signed)
unsigned >>= constant;
}
public void UnsignedRightShiftTest(@Signed int signed, @Constant int constant) {
//:: error: (compound.assignment.shift.unsigned)
signed >>>= constant;
}
public void mixedTest(@Unsigned int unsigned, @Signed int signed) {
//:: error: (compound.assignment.mixed.unsigned.variable) :: error: (compound.assignment.type.incompatible)
unsigned += signed;
//:: error: (compound.assignment.mixed.unsigned.expression) :: error: (compound.assignment.type.incompatible)
signed += unsigned;
}
}