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
|
import org.checkerframework.checker.tainting.qual.PolyTainted;
import org.checkerframework.checker.tainting.qual.Tainted;
import org.checkerframework.checker.tainting.qual.Untainted;
@SuppressWarnings({
"inconsistent.constructor.type",
"super.invocation.invalid"
}) // ignore these warnings
public class PolyReturn {
@PolyTainted PolyReturn() {}
@PolyTainted PolyReturn method() {
return new PolyReturn();
}
void use() {
@Untainted PolyReturn untainted = new PolyReturn();
@Untainted PolyReturn untainted2 = new @Untainted PolyReturn();
@Untainted PolyReturn untainted3 = method();
@Tainted PolyReturn tainted = new PolyReturn();
@Tainted PolyReturn tainted2 = new @Tainted PolyReturn();
@Tainted PolyReturn tainted3 = method();
}
}
|