Releases: uber/NullAway
Releases · uber/NullAway
NullAway 0.12.1
NullAway 0.12.0
IMPORTANT:
- We now by default check/enforce that pure type-use annotations from JSpecify are written in the "right place" on array types, varargs types, and nested types. More details can be found in the wiki. We also expose
-XepOpt:NullAway:LegacyAnnotationLocations
flag to disable this new
behavior for now to ease the migration. We expect to remove this flag in a future version
of NullAway. - We now support writing @EnsuresNonNullIf on methods to capture cases where a method conditionally ensures that a field is @nonnull. Thanks @mauricioaniche for the contributions!
(The changelog below contains all changes from version 0.11.2, since version 0.11.3 contains only one cherry-picked PR from master).
- Enforce Strict Interpretation Of Type Use Annotation Locations Outside of JSpecify mode (#1010)
- Update handling of annotations on varargs argument (#1025)
- Create basic unit tests for library model generation (#1031)
- Partial handling for restrictive annotations on varargs in unannotated code (#1029)
- Add missing source files in android-jarinfer-models-sdk modules (#1033)
- External Library Models: Adding support for @nullable Method parameters (#1006)
- JDK 23 support (#1034)
- Support @EnsuresNonNullIf (#1044)
- Update some Android astubx models (#1052)
- Remove unused or unneeded JarInfer flags (#1050)
- Enforce correct type-use annotation locations for nested types (#1045)
- Update Android SDK 31 astubx models (#1054)
- Fix bugs in reading varargs annotations from bytecodes (#1055)
- General maintenance:
- Update to Gradle 8.10 (#1023)
- Update to Gradle 8.10.1 (#1036)
- Update to Error Prone 2.32.0 (#1037)
- Typo fix in README.md (#1041)
- Fix Gradle config instructions (#1039)
- Update to v4 of setup-gradle GitHub action (#1043)
- Add extra JVM args needed for JMH on recent JDK versions (#1049)
- Use HTTP instead of SSH for cloning repo for JMH Benchmarks (#1056)
- Various version updates (#1051)
- Update to Checker Framework 3.48.0 (#1030)
NullAway 0.11.3
IMPORTANT: We have cherry-picked one PR in master since 0.11.2 for this release, it
does not contain all changes in master!
- Add missing source files in android-jarinfer-models-sdk modules (#1033)
NullAway 0.11.2
NullAway 0.11.1
- Fix issue 1008 (#1009)
- JSpecify: read upper bound annotations from bytecode and add tests (#1004)
- Fix crash with suggested suppressions in JSpecify mode (#1001)
- Update to JSpecify 1.0 and use JSpecify annotations in NullAway code (#1000)
- Expose @EnsuresNonNull and @RequiresNonNull in annotations package (#999)
- Don't report initializer warnings on @NullUnmarked constructors / methods (#997)
- Strip annotations from MethodSymbol strings (#993)
- JSpecify: fix crashes where declared parameter / return types were raw (#989)
- JSpecify: Handle @nullable elements for enhanced-for-loops on arrays (#986)
- Features/944 tidy stream nullability propagator (#985)
- Tests for loops over arrays (#982)
- Bug fixes for array subtyping at returns / parameter passing (#980)
- JSpecify: Handle @nonnull elements in @nullable content arrays (#963)
- Don't report @nullable type argument errors for unmarked classes (#958)
- External Library Models: Adding support for Nullable upper bounds of Generic Type parameters (#949)
- Refactoring / code cleanups:
- Test on JDK 22 (#992)
- Add test case for @nullable Void with override in JSpecify mode (#990)
- Enable UnnecessaryFinal and PreferredInterfaceType EP checks (#991)
- Add missing @test annotation (#988)
- Fix typo in variable name (#987)
- Remove AbstractConfig class (#974)
- Fix Javadoc for MethodRef (#973)
- Refactored data clumps with the help of LLMs (research project) (#960)
- Build / CI tooling maintenance:
- Various cleanups enabled by bumping minimum Java and Error Prone versions (#962)
- Disable publishing of snapshot builds from CI (#967)
- Update Gradle action usage in CI workflow (#969)
- Update Gradle config to always compile Java code using JDK 17 (#971)
- Update JavaParser to 3.26.0 (#970)
- Reenable JMH benchmarking in a safer manner (#975)
- Updated JMH Benchmark Comment Action (#976)
- Update to Gradle 8.8 (#981)
- Update to Error Prone 2.28.0 (#984)
- Update to Gradle 8.9 (#998)
- Update to WALA 1.6.6 (#1003)
NullAway 0.11.0
IMPORTANT: Support for JDK 8 is dropped and NullAway now requires ErrorProne 2.14.0 or higher.
NullAway 0.10.26
NullAway 0.10.25
- JSpecify: Handle @nullable assignments to @nonnull arrays (#929)
- Handle JDK 21 case operands in type refinement (#928)
- Track access paths of the form Foo.this.bar (#937)
- Add test for boolean contract with extra message argument (#945)
- Collectors.toMap handling for streams (#938)
- Handle methods that fail unconditionally in ContractHandler (#946)
- Build / CI tooling upgrades:
- Update various dependencies (#939)
NullAway 0.10.24
- Add library model for Files.isDirectory (#913)
- JSpecify test case for generic methods (#918)
- Check dereference of qualifier expression in method reference (#920)
- JSpecify: skip checking when type is primitive (#924)
- Fix another JSpecify raw type issue (#925)
- Fix handling of references to methods of array types and type variables (#926)
- Build / CI / Documentation upgrades/fixes:
NullAway 0.10.23
- Update for missing a couple possibly unsafe xml parser (#902)
- Add foojay-resolver-convention plugin (#905)
- JSpecify: Reason about nullability of reads from arrays (#875)
- Fix handling of static imports from subclasses (#904)
- Adding support for nullable type upper bounds considering Library models (#903)
- Support for extra Futures classes (#909)
- Build / CI tooling upgrades:
- Bump various CI workflow versions (#906)