| // Expected error appears: |
| // $ch/bin/javac -processor org.checkerframework.checker.tainting.TaintingChecker |
| // TwoCheckers.java |
| // $ch/bin/javac -processor org.checkerframework.checker.tainting.TaintingChecker,regex |
| // TwoCheckers.java |
| |
| // Expected error is suppressed: |
| // $ch/bin/javac -processor regex,org.checkerframework.checker.tainting.TaintingChecker |
| // TwoCheckers.java |
| |
| // Compare these two executions: |
| // $ch/bin/javac -processor org.checkerframework.checker.tainting.TaintingChecker,regex |
| // TwoCheckers.java -AprintAllQualifiers -Ashowchecks > out-good.txt |
| // $ch/bin/javac -processor regex,org.checkerframework.checker.tainting.TaintingChecker |
| // TwoCheckers.java -AprintAllQualifiers -Ashowchecks > out-bad.txt |
| |
| // Turning off caches has no effect: |
| // $ch/bin/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) |
| requiresUntainted(a); |
| } |
| |
| void requiresUntainted(@Untainted String b) {} |
| } |