import org.checkerframework.checker.tainting.qual.Untainted;
class SimplePrims {
void execute(@Untainted int s) {}
void tainted(int s) {}
void intLiteral() {
//:: error: (argument.type.incompatible)
execute(5);
tainted(6);
}
void intRef(int ref) {
//:: error: (argument.type.incompatible)
execute(ref);
tainted(ref);
}
void untaintedRef(@Untainted int ref) {
execute(ref);
tainted(ref);
}
void concatenation(@Untainted int s1, int s2) {
execute(s1 + s1);
execute(s1 += s1);
//:: error: (argument.type.incompatible)
execute(s1 + 3);
//:: error: (argument.type.incompatible)
execute(s1 + s2);
//:: error: (argument.type.incompatible)
execute(s2 + s1);
//:: error: (argument.type.incompatible)
execute(s2 + 4);
//:: error: (argument.type.incompatible)
execute(s2 + s2);
tainted(s1 + s1);
tainted(s1 + 7);
tainted(s1 + s2);
tainted(s2 + s1);
tainted(s2 + 8);
tainted(s2 + s2);
}
}