-
Notifications
You must be signed in to change notification settings - Fork 336
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: uber/NullAway
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.13.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: uber/NullAway
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.13.1
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 7 commits
- 12 files changed
- 2 contributors
Commits on Jan 20, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 7f8bbca - Browse repository at this point
Copy the full SHA 7f8bbcaView commit details
Commits on Jan 23, 2026
-
Improve verification of !null -> !null contracts (#1441)
Fixes #1440 Fixes #1104 It turns out we can relatively easily handle these cases by looking for `BOTTOM` in the `NullnessStore` before the return expression (which means the path is infeasible). I do wonder if there are other places in our analyses we should be checking for `BOTTOM`, but we want to be careful since some users may expect issues to be reported in unreachable code. But for contract verification, it seems essential. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Enhanced contract-driven nullness analysis to inspect all nested return expressions and detect unreachable return paths via contract dataflow. * Added an API to identify unreachable/definitively-null access paths for contract checks. * Improved construction of contract-violation messages. * **Bug Fixes** * Reduces spurious contract violation reports (including void-like returns and unreachable branches). * **Tests** * Added tests covering propagation, multi-level contracts, ternaries, void returns, and nested lambdas/anonymous classes. * **Chores** * Replaced a runtime assertion with a clearer verification error for unexpected AST kinds. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Configuration menu - View commit details
-
Copy full SHA for fc6d956 - Browse repository at this point
Copy the full SHA fc6d956View commit details
Commits on Jan 25, 2026
-
Substitute inferred
@NonNulltypes for generic method inference (#1445) Fixes #1444 In certain cases, like the test from #1444 added here, `javac` adds a `@Nullable` annotation to a type incorrectly as part of its inference. Here, for a call from the test: ```java @NullMarked public class Test { static class DefaultConfiguration { final @nullable Stream<? extends String> children; } final Stream<? extends String> children; Test(DefaultConfiguration configuration) { // relevant call this.children = notNull(configuration.children, "children must not be null"); } public static <T> T notNull(@nullable T object, String message) { throw new RuntimeException("todo"); } } ``` `javac`s inferred type for the return of the `notNull` call matches the inferred parameter type exactly, `@Nullable Stream<...>`. But, when applying JSpecify rules, the return cannot be `@Nullable`. To fix this, add inferred `@NonNull` qualifiers along with `@Nullable` when doing a substitution inside a type. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Simplified printing of error/unknown generic types to show only the simple type name. * Improved type-variable substitution so inferred nullability is applied for both nullable and non-null cases. * **Tests** * Added/updated tests covering generic method type inference and JSpecify/Nullability behaviors (includes a new scenario for issue1444). <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Configuration menu - View commit details
-
Copy full SHA for c27f3f4 - Browse repository at this point
Copy the full SHA c27f3f4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4c619e8 - Browse repository at this point
Copy the full SHA 4c619e8View commit details
Commits on Jan 26, 2026
-
Configuration menu - View commit details
-
Copy full SHA for b27f13d - Browse repository at this point
Copy the full SHA b27f13dView commit details
Commits on Jan 27, 2026
-
Changelog for release 0.13.1 (#1449)
Also update `AGENTS.md` to help coding agents auto-format release note bullets properly.
Configuration menu - View commit details
-
Copy full SHA for 99025e4 - Browse repository at this point
Copy the full SHA 99025e4View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc9dab8 - Browse repository at this point
Copy the full SHA cc9dab8View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.13.0...v0.13.1