You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
import java.util.Comparator;
import org.checkerframework.checker.determinism.qual.PolyDet;
public class ComparatorIssue {
public static void test(
@PolyDet Class<?> @PolyDet [] result, @PolyDet MyComparator classComparator) {
sortProxy(result, classComparator);
}
private static class MyComparator implements Comparator<Class<?>> {
@Override
public int compare(Class<?> c1, Class<?> c2) {
return c1.getName().compareTo(c2.getName());
}
}
public static <T> void sortProxy(T @PolyDet [] a, @PolyDet("use") Comparator<? super T> c) {}
}
Running the command javac -processor determinism checker/tests/determinism/ComparatorIssue.java -AusePolyDefault
results in the following unexpected error:
checker/tests/determinism/ComparatorIssue.java:8: error: [argument.type.incompatible] incompatible argument for parameter c of sortProxy.
sortProxy(result, classComparator);
^
found : @PolyDet MyComparator
required: @PolyDet Comparator<? extends @NonDet Object super @PolyDet Class<? extends @NonDet Object>>
checker/tests/determinism/ComparatorIssue.java:8: error: [argument.type.incompatible] incompatible argument for parameter c of sortProxy.
sortProxy(result, classComparator);
^
found : @PolyDet MyComparator
required: @PolyDet Comparator<? extends @NonDet Object super @PolyDet Class<? extends @NonDet Object>>
2 errors
The text was updated successfully, but these errors were encountered:
Consider the following test case:
Running the command
javac -processor determinism checker/tests/determinism/ComparatorIssue.java -AusePolyDefault
results in the following unexpected error:
The text was updated successfully, but these errors were encountered: