Skip to content

Releases: uber/NullAway

NullAway 0.12.7

30 Apr 02:27

Choose a tag to compare

  • 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

27 Mar 21:02

Choose a tag to compare

  • JSpecify: view type as super in generic method inference (#1177)
  • Infer @nullable type arguments for type variables from unmarked code (#1181)
  • Convert android-jar.py to Python 3 (#1175)
  • Suggest castToNonNull fix for unboxing error (#1182)

NullAway 0.12.5

26 Mar 03:24

Choose a tag to compare

  • 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

27 Feb 23:05

Choose a tag to compare

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

06 Jan 15:56

Choose a tag to compare

  • 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
    • Fix comment positions (#1098)
    • [refactoring] Wrap calls to Types.subst and Types.memberType (#1115)
    • Build latest Caffeine on CI (#1111)

NullAway 0.12.2

13 Dec 16:04

Choose a tag to compare

  • 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

28 Oct 16:32

Choose a tag to compare

  • Add library model for Apache Commons CollectionUtils.isNotEmpty (#932) (#1062)
  • Handle records in targetTypeMatches (#1061)

NullAway 0.12.0

18 Oct 16:24

Choose a tag to compare

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

16 Sep 14:45

Choose a tag to compare

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

19 Aug 17:57

Choose a tag to compare

  • JSpecify: add another bailout check for raw types (#1021)
  • JSpecify: handle intersection type in one place (#1015)
  • JSpecify: fix for crash with wildcard types (#1020)
  • Maintenance: