Conversation
WalkthroughThis pull request updates the check-framework dependency from version 3.49.2 to 3.53.0 and refactors the dataflow analysis API. The public Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI Agents
In @gradle/libs.versions.toml:
- Line 3: The libs.versions.toml entry for check-framework is set to a
non-existent version "3.53.0"; update the check-framework version string to
"3.52.0" (the latest stable release) in the libs.versions.toml file so
dependency resolution uses the correct Maven Central version.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (3)
gradle/libs.versions.tomlnullaway/src/main/java/com/uber/nullaway/dataflow/DataFlow.javanullaway/src/main/java/com/uber/nullaway/dataflow/RunOnceForwardAnalysisImpl.java
💤 Files with no reviewable changes (1)
- nullaway/src/main/java/com/uber/nullaway/dataflow/RunOnceForwardAnalysisImpl.java
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: msridhar
Repo: uber/NullAway PR: 1248
File: nullaway/src/main/java/com/uber/nullaway/generics/GenericsChecks.java:847-857
Timestamp: 2025-08-28T04:54:20.953Z
Learning: In NullAway's GenericsChecks.java, NewClassTree support for explicit type argument substitution requires more extensive changes beyond just modifying the conditional in compareGenericTypeParameterNullabilityForCall. The maintainers prefer to handle NewClassTree support in a separate follow-up rather than expanding the scope of PRs focused on specific issues like super constructor calls.
📚 Learning: 2025-08-29T18:41:43.584Z
Learnt from: msridhar
Repo: uber/NullAway PR: 1259
File: jdk-recent-unit-tests/src/test/java/com/uber/nullaway/jdk17/SwitchTests.java:318-321
Timestamp: 2025-08-29T18:41:43.584Z
Learning: Classes annotated with NullMarked are analyzed by NullAway even if they are not in packages specified by the AnnotatedPackages configuration. The NullMarked annotation guarantees NullAway analysis.
Applied to files:
nullaway/src/main/java/com/uber/nullaway/dataflow/DataFlow.java
📚 Learning: 2025-08-14T18:50:06.159Z
Learnt from: msridhar
Repo: uber/NullAway PR: 1245
File: guava-recent-unit-tests/src/test/java/com/uber/nullaway/guava/NullAwayGuavaParametricNullnessTests.java:101-102
Timestamp: 2025-08-14T18:50:06.159Z
Learning: In NullAway JSpecify tests, when JDK version requirements exist due to bytecode annotation reading capabilities, prefer failing tests over skipping them on unsupported versions to ensure CI catches regressions and enforces proper JDK version usage for developers.
Applied to files:
nullaway/src/main/java/com/uber/nullaway/dataflow/DataFlow.java
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: benchmarking
- GitHub Check: Build and test on ubuntu-latest
- GitHub Check: Build and test on macos-latest
- GitHub Check: Build spring-framework with snapshot
- GitHub Check: Build and test on windows-latest
- GitHub Check: Build caffeine with snapshot
🔇 Additional comments (2)
nullaway/src/main/java/com/uber/nullaway/dataflow/DataFlow.java (2)
44-44: LGTM!The HashMap import is necessary for the updated Checker Framework API call at line 297.
297-297: The API usage is correct for Checker Framework 3.53.0.The
getStoreBeforemethod onAnalysisobjects in CF 3.53.0 accepts aMapparameter as a cache for storing per-node analysis results. Passing an emptyHashMapis the correct approach here, as the analysis is being run in-progress and should not reuse a pre-existing cache. The signature differs fromAnalysisResult.getStoreBefore(Tree)(which takes only the tree node), and both usages are correct for their respective types.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1429 +/- ##
============================================
+ Coverage 88.37% 88.45% +0.08%
+ Complexity 2667 2664 -3
============================================
Files 97 97
Lines 8853 8830 -23
Branches 1773 1767 -6
============================================
- Hits 7824 7811 -13
+ Misses 512 506 -6
+ Partials 517 513 -4 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Main Branch: With This PR: |
Pulls in a small performance improvement from typetools/checker-framework#7397 and new APIs from typetools/checker-framework#7418 that let us delete some custom implementations in NullAway
Summary by CodeRabbit
Chores
Refactor
✏️ Tip: You can customize this high-level summary in your review settings.