Yes, that sounds good. After re-reading some things, my impression is that I was treating the problem as "caused by" this PR because this PR required eisop/checker-framework#746—which is the true cause of the problem.
OK, that wasn't actually hard at all, sorry.
$ git clone git@github.com:jspecify/jspecify-reference-checker.git
$ cd jspecify-reference-checker/
$ git checkout main-eisop # 9e4d14d4a19751a7211bf4c02e202126f59c58f3
$ JAVA_HOME=$HOME/jdk-17.0.2 ./gradlew clean assemble
$ ./demo ListSubclass.java
Note: The Checker Framework is tested with JDK 8, 11, 17, and 21. You are using version 22.
ListSubclass.java:8: error: [override.param.invalid] Incompatible parameter type for filter.
boolean removeIf(Predicate<? super Z> filter);
^
found : Predicate<? super Z>
required: Predicate<? super Z*>
Consequence: method in ListSubclass<Z>
boolean removeIf(Predicate<? super Z>)
cannot override method in Collection<Z*>
boolean removeIf(Predicate<? super Z*>)
1 error
Note:
=====
The nullness checker is still early in development.
It has many rough edges.
For an introduction, see https://jspecify.dev/docs/user-guide
=====
In contrast, if I create a fresh clone and build from the main branch (1a7b3ed), I get a success:
$ ./demo ListSubclass.java
warning: Use JDK 8, 11, or 17 to run the Checker Framework. You are using version 22.
1 warning
I managed to notice that just before posting and then still not post it :)
import java.util.List;
import java.util.function.Predicate;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
@NullMarked
interface ListSubclass<Z extends @Nullable Object> extends List<Z> {
boolean removeIf(Predicate<? super Z> filter);
}
Originally posted by @cpovirk in #178 (comment)
Yes, that sounds good. After re-reading some things, my impression is that I was treating the problem as "caused by" this PR because this PR required eisop/checker-framework#746—which is the true cause of the problem.
I managed to notice that just before posting and then still not post it :)
Originally posted by @cpovirk in #178 (comment)