jspecify / jspecify-reference-checker

The reference implementation for the JSpecify nullness specification (and later, its other specifications as well)
https://jspecify.org
Apache License 2.0
26 stars 7 forks source link

Use the new `NoContractsFromMethod` #201

Closed wmdietl closed 3 months ago

wmdietl commented 3 months ago

Depends on https://github.com/eisop/checker-framework/pull/878 Also tests whether the EISOP CI picks up this corresponding branch in the reference checker.

wmdietl commented 3 months ago

EISOP CI build correctly picks up this branch and is successful. I'll merge the two PRs together once they're approved.

In an ideal world this PR would pick up the corresponding EISOP branch...

wmdietl commented 3 months ago

In CI I notice this failure:

FAILURE: Build failed with an exception.

* What went wrong:
Circular dependency between the following tasks:
:jspecify:classes
\--- :jspecify:compileJava
     \--- :jspecify:jar
          +--- :jspecify:classes (*)
          +--- :jspecify:compileJava (*)
          +--- :jspecify:compileJava9Java
          |    \--- :jspecify:jar (*)
          \--- :jspecify:java9Classes
               \--- :jspecify:compileJava9Java (*)

(*) - details omitted (listed previously)

The same problem can be reproduced with main, meaning it doesn't depend on this PR and doesn't depend on changes in EISOP.

I can reproduce it with jspecify-reference-checker in the main branch using an --include-build ../jspecify configuration. However, I didn't figure out how to trigger the circular dependency directly in the jspecify build.

When I go into jspecify and execute git checkout 0394cfed29ae86d75ad327dc9df9697e0b9b90a6, that is, if I use the state before https://github.com/jspecify/jspecify/pull/605, the build of the reference checker succeeds.

So something about https://github.com/jspecify/jspecify/pull/605 is breaking the build of the reference checker.

@cpovirk Any idea?

wmdietl commented 3 months ago

I'll merge this PR to make main-eisop compile against the updated EISOP. I'll turn the previous comment into a new issue.