Releases: uber/NullAway
NullAway 0.12.7
- Update to Checker Framework 3.49.2 (#1183)
- Don't check synchronized blocks within unannotated code (#1185)
- Test on JDK 24 (#1187)
- Fix multiple issues with NewClassTrees that have enclosing expressions (#1191)
- Ensure classes null-marked by library model detected in all places (#1197)
- JSpecify: handle varargs whose element type is a type variable (#1200)
- Update to Error Prone 2.38.0 (#1203)
- Optimization to annotation stripping in library model matching (#1204)
- Make arg position nullness array contents nullable (#1207)
- Properly handle method references to null-unmarked methods (#1205)
NullAway 0.12.6
NullAway 0.12.5
- Add missing override to RestoreNullnessAnnotationsVisitor (#1154)
- Add more bailouts for raw types (#1153)
- Do unboxing check for invocation parameters even when calling a @NullUnmarked method (#1163)
- JSpecify: infer generic method type arguments for assignments (#1131)
- JSpecify: properly handle lambdas in anonymous inner classes (#1165)
- Support @MonotonicNonNull on static fields (#1166)
- Update to Error Prone 2.37.0 (#1169)
- Use proper name for constructors in JarInfer (#1167)
- Don't treat @ParametricNullness as @nullable in JSpecify mode (#1174)
Version 0.12.4
Version 0.12.4
Better @MonotonicNonNull support (#1149)
Add support for local variables for arrays. (#1146)
Ignore Spring Framework 6.2 @MockitoBean, @MockitoSpyBean fields (#1147)
JSpecify: preserve explicit nullability annotations on type variables when performing substitutions (#1143)
Always acknowledge restrictive annotations in JSpecify mode (#1144)
Fix printing of array types in JSpecify errors (#1145)
Remove need to use JSpecify's @nullable annotation (#1142)
Handle calls to generic constructors in JSpecify mode (#1141)
Properly handle conditional expression within parens as RHS of assignment (#1140)
Skip checks involving wildcard generic type arguments (#1137)
Update to Gradle 8.12.1 (#1133)
NullAway 0.12.3
- Remove InferredJARModelsHandler (#1079)
- Fix crash with annotation on enum (#1097)
- Handle case null in switch statements (#1100)
- Don't report errors for writes to @NullUnmarked fields (#1102)
- Support primitive static final fields as constant args in access paths (#1105)
- Fix issue with annotations in module-info.java files (#1109)
- Report error for @nullable synchronized block expression (#1106)
- Add support for parameter types with wildcards for JarInfer (#1107)
- Properly handle nested generics and multiple wildcard type args in JarInfer (#1114)
- Proper checking of vararg overrides with JSpecify annotations (#1116)
- Add flag to indicate only @NullMarked code should be checked (#1117)
- Add support for static fields in contracts (#1118)
- Maintenance
NullAway 0.12.2
- Fix reading of JSpecify @nullable annotations from varargs parameter in bytecode (#1089)
- Fix JarInfer handling of generic types (#1078)
- Fix another JSpecify mode crash involving raw types (#1086)
- Fix bugs in handling of valueOf calls for map keys (#1085)
- Suggest correct fix when array component of non-nullable array is made null. (#1087)
- Substitute type arguments when checking type parameter nullability at call site (#1070)
- Fix JarInfer parameter indexes for instance methods (#1071)
- JSpecify mode: initial support for generic methods (with explicit type arguments at calls) (#1053)
- Maintenance
- Update to latest Error Prone and Error Prone Gradle plugin (#1064)
- Refactor serialization adapter retrieval by version (#1066)
- Remove fixes.tsv serialization from NullAway serialization service (#1063)
- Enable javac -parameters flag (#1069)
- Update to Gradle 8.11 (#1073)
- Add test for issue 1035 (#1074)
- remove use of deprecated Gradle API (#1076)
- Update to Error Prone 2.36.0 (#1077)
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:LegacyAnnotationLocationsflag 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)