blob: ccc4a19d5927acefdf454395c607622065c90869 [file] [log] [blame]
import org.checkerframework.checker.tainting.qual.PolyTainted;
import org.checkerframework.checker.tainting.qual.Tainted;
import org.checkerframework.checker.tainting.qual.Untainted;
import org.checkerframework.framework.qual.HasQualifierParameter;
@HasQualifierParameter(Tainted.class)
public class PolyConstructor {
@PolyTainted PolyConstructor() {}
@PolyTainted PolyConstructor(@PolyTainted Object o) {}
static void uses(@Tainted Object tainted, @Untainted Object untainted) {
@Untainted PolyConstructor o1 = new @Untainted PolyConstructor();
@Tainted PolyConstructor o2 = new @Tainted PolyConstructor();
@PolyTainted PolyConstructor o3 = new @PolyTainted PolyConstructor();
// :: error: (assignment)
@Untainted PolyConstructor o4 = new @Tainted PolyConstructor(untainted);
@Untainted PolyConstructor o5 = new PolyConstructor(untainted);
// This currently isn't supported, but could be in the future.
@Untainted PolyConstructor o6 = new PolyConstructor();
// :: error: (assignment)
@Tainted PolyConstructor o7 = new PolyConstructor();
}
}