1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
// Expected error appears:
// $ch/bin-devel/javac -processor org.checkerframework.checker.tainting.TaintingChecker
// TwoCheckers.java
// $ch/bin-devel/javac -processor org.checkerframework.checker.tainting.TaintingChecker,regex
// TwoCheckers.java
// Expected error is suppressed:
// $ch/bin-devel/javac -processor regex,org.checkerframework.checker.tainting.TaintingChecker
// TwoCheckers.java
// Compare these two executions:
// $ch/bin-devel/javac -processor org.checkerframework.checker.tainting.TaintingChecker,regex
// TwoCheckers.java -AprintAllQualifiers -Ashowchecks > out-good.txt
// $ch/bin-devel/javac -processor regex,org.checkerframework.checker.tainting.TaintingChecker
// TwoCheckers.java -AprintAllQualifiers -Ashowchecks > out-bad.txt
// Turning off caches has no effect:
// $ch/bin-devel/javac -processor regex,org.checkerframework.checker.tainting.TaintingChecker
// TwoCheckers.java -AprintAllQualifiers -Ashowchecks -AatfDoNotCache AAatfDoNotReadCache >
// out-bad-nocache.txt
import org.checkerframework.checker.tainting.qual.Untainted;
public class TwoCheckers {
void client(String a) {
// :: error: (argument.type.incompatible)
requiresUntainted(a);
}
void requiresUntainted(@Untainted String b) {}
}
|