-
Notifications
You must be signed in to change notification settings - Fork 331
Releases: uber/NullAway
NullAway 0.13.1
Assets 2
NullAway 0.13.0
NullAway now requires a minimum of JDK 17 and Error Prone 2.36.0 to run; we bump the version to 0.13.0 to reflect these
updated requirements. There are also many improvements to JSpecify mode support, and several nice changes and
improvements from first-time contributors.
- Support added for JUnit's @tempdir by @romainmoreau (#1387)
- Use OptimizedLibraryModels for method type variable upper bounds (#1388)
- Add @InjectWireMock as known excluded field annotation (#1391)
- Require JDK 17 to run NullAway (#1394)
- Support adding nested nullability annotations in library models (#1407)
- Add library model for AtomicReferenceFieldUpdater (#1409)
- Correctly get parameter types for a lambda whose type was inferred (#1348)
- Add Mockito annotations to default excluded field annotations by @murdos (#1418)
- Properly identify annotations directly on the array element type of a Symbol (#1419)
- Update to Checker Framework 3.53.0 (#1429)
- JSpecify: Apply annotations on type variables to lambdas in more cases (#1428)
- Migrate AutoValue to Records by @rishikraj990 (#1415)
- Bump minimum Error Prone version to 2.36.0, and add detection of nullable dereference by switch expressions (#1427)
- JSpecify: Improve handling of method references (#1430)
- Allow suppressing nullaway on individual parameters by @jackwickham (#1436)
- Update jdk-javac-plugin to contain nested annotations by @haewiful (#1432)
- Maintenance
- Delete code to generate library models from source (#1385)
- Refactor: Migration to Version Catalog completed by @vitinh0z (#1386)
- Bump Gradle to 9.2.1 (#1392)
- Update to Error Prone 2.45.0 (#1401)
- Stop matching switch expression kind using strings (#1404)
- Refactoring: clarify docs and naming for RestoreNullnessAnnotationsVisitor (#1406)
- Refactoring: rename method and field (#1405)
- Run NullAway on jdk-javac-plugin code (#1408)
- Clarify comment in test (#1411)
- Enable PatternMatchingInstanceOf check and fix all warnings (#1412)
- Enable StatementSwitchToExpressionSwitch check and fix all warnings (#1413)
- bump and remove some dependencies (#1414)
- Update minimum supported Error Prone version to 2.25.0 (#1421)
- Update CI to run builds on JDK 25 (#1422)
- Various cleanups suggested by IntelliJ (#1423)
- Convert test data in main NullAway tests to use text blocks (#1424)
- Refactor CoreTests and UnannotatedTests to use addSourceLines and inline test data by @cobayo (#1426)
- Refactor ContractsTests to use Java text blocks by @cobayo (#1435)
- Update Error Prone and errorprone-plugin versions (#1434)
Assets 2
NullAway 0.12.15
NullAway now includes a BOM artifact com.uber.nullaway:nullaway-bom. Otherwise, this release contains a few bug
fixes and improvements to JSpecify support.
- Fix URL for RequireExplicitNullMarking checker (#1369)
- Handle annotations on type variables in return and field types (#1371)
- Change how recursive calls to dataflow are detected (#1374)
- JSpecify: use type on identifier when its type is a type variable (#1378)
- Include method type parameters in astubx files. by @haewiful (#1370)
- Create nullaway-bom project (#1130) by @lpireyn (#1380)
- Run dataflow analysis on bodies of lambdas passed to generic methods (#1375)
- Maintenance
- Remove BaseNoOpHandler and replace with default methods in Handler (#1376)
Assets 2
NullAway 0.12.14
This release fixes a bug where the new RequireExplicitNullMarking check was not fully disabled by default. It also includes a couple of performance optimizations to reduce NullAway overhead.
Assets 2
NullAway 0.12.13
NullAway now includes a new Error Prone checker, RequireExplicitNullMarking, that checks that every class is explicitly @NullMarked or @NullUnmarked (at the class or package level), so code is not left @NullUnmarked unintentionally. The check is disabled by default. See the docs for further details.
NullAway also includes support for a new @PureExceptLambda annotation, contributed by @FxMorin, to tell NullAway
to preserve nullability information from the enclosing method when analyzing the body of certain lambdas.
See the docs for details.
- Use passed-in
TreePathin one more place when available (#1329) - Checker to ensure explicit null marking of every class (#1323)
- Bound size of alreadyRunAnalyses cache to be consistent (#1334)
- Improve inference for generic methods with lambda argument containing return statements by @dhruv-agr (#1337)
- Add
PureExceptLambdaannotation by @FxMorin (#1325) - Support marking method type variable upper bounds as
@Nullablein library models (#1345) - Method name parsing in
ExternalStubxLibraryModelsclass is missing a corner case by @haewiful (#1344) - Better fix for dataflow analysis caching (#1353)
- Maintenance
- Add package-info files with @NullMarked (#1331)
- Speed up buildWithNullAway task (#1330)
- Enable the VoidMissingNullable checker and autofix all extant warnings (#1332)
- Bump JDK version to 25 for integration tests (#1336)
- Switch Coderabbit to assertive mode (#1338)
- Enable EqualsMissingNullable check and fix all extant warnings (#1339)
- Bump to AutoValue 1.11.1 (#1340)
- Update Caffeine benchmark (#1342)
- Add a test for a useless @contract (#1346)
- Test case for wildcards in Generic Method with Lambda Arguments by @dhruv-agr (#1349)
- Add initial AGENTS.md file (#1352)
Assets 2
NullAway 0.12.12
This release fixes a severe performance regression introduced in NullAway 0.12.11 and we encourage all users of 0.12.11 to upgrade.
Assets 2
NullAway 0.12.11
Version 0.12.11
In this release, NullAway checks the requirement that JSpecify mode is only run on a compatible javac version /
configuration, and fails if it detects an incompatibility.
See https://github.com/uber/NullAway/wiki/JSpecify-Support#supported-jdk-versions for details.
- Use inference for generic call passed as receiver to instance method (#1293)
- Accept any annotation with simple name
Contract, and change reporting of invalid contract annotations (#1295) - Properly model AtomicReference.get() in JSpecify mode (#1298)
- Improve handling and error messages when using
thisinside an anonymous class (#1305) - Generate astubx from JSON output of jdk-javac-plugin by @haewiful (#1243)
- Improve inference for generic method with void-returning lambda argument by @dhruv-agr (#1312)
- Use refined types from dataflow analysis in generic method inference (#1309)
- Fail if NullAway is run in JSpecify mode with an incompatible javac version / configuration (#1317)
- Jdk javac plugin: don't serialize info for classes / methods without annotations by @haewiful (#1316)
- Maintenance
- [Cleanup] Refactor away unnecessary Predicate by @lazaroclapp (#1297)
- Update to Error Prone 2.42.0 (#1299)
- Update to Gradle 9.1.0 (#1302)
- Test on JDK 25 (#1301)
- Compile with JDK 25 (#1303)
- Add CodeRabbit config (#1306)
- Update Gradle command used for integration tests (#1311)
- Disable CodeRabbit review status comments (#1313)
- Gradle fixes for jar-infer-lib (#1314)
- Enable building NullAway on JDK 25 (#1315)
Assets 2
NullAway 0.12.10
This release contains significant improvements to inference support for generic method calls in JSpecify mode (#1075).
We expect that many more valid calls will pass NullAway, but that some new bugs may have been introduced. Please report
any issues that you see. There is also a new flag, -XepOpt:NullAway:WarnOnGenericInferenceFailure to make NullAway
report a warning when inference fails, to help identify any issues.
- Improved inference for generic method calls (#1244)
- Suppress
CastToNonNullwarnings for@NullUnmarkedmethod calls by @raccoonback (#1258) - JSpecify: Fix crash when overriding with raw types (#1265)
- Better handle calls to super constructors and superclass methods in JSpecify mode (#1248)
- issue-1250 pattern matching for instanceof in switch case by @dhruv-agr (#1259)
- Account for annotations in extends / implements when computing view as supertype (#1266)
- Bug fix with type substitutions after inference (#1277)
- JSpecify: Improve error messages for type incompatibility at pseudo-assignments (#1279)
- Support java.util.Objects.toString() by @gulikoza (#1283)
- Record when generic method inference fails (#1280)
- issue 1275 - report unboxing warning for for-each loop by @dhruv-agr (#1281)
- Abstract iterating over invocation arguments (#1284)
- Invoke generic method inference in more places (#1286)
- Maintenance
- Build Spring with snapshot build as a CI job (#1251)
- Add more instance fields to
GenericsChecks(#1256) - remove unneeded checkNotCall call (#1257)
- Fail build on JDK 21 versions before 21.0.8 (#1261)
- Clarify JDK version to use for best JSpecify support (#1269)
- Simplified set of CI jobs (#1271)
- Build: upgrade to Gradle 9 + AGP 8.7.2 (#1270)
- Compile with JDK 24 (#1276)
- Don't use deprecated
buildDirby @mernst (#1278)
Assets 2
NullAway 0.12.9
NullAway 0.12.8
- Document interactions between Guava and JSpecify mode in README (#1208)
- JSpecify: handle nullness annotations from extends / inherits clauses (#1211)
- Allowing NewClassTree to be passed into getGenericParameterNullnessAtInvocation (#1210)
- Support @NullMarked on modules (#1216)
- Handle NewClassTree in compareGenericTypeParameterNullabilityForCall(#1212) (#1217)
- More flexible handling of AssertJ isNotNull methods (#1221)
- Support AssertJ hasSize() (#1229)
- Inference of generic method type arguments based on returns and parameter passing (#1226)
- Prototype implementation of javac plugin to serialize nullness annotations (#1225)
- Add AdditionalSuppressionNames configuration option (#1231)
- Updates to deploy releases to Central Portal (#1234)
- Fix to handling of case null (#1235)
- Maintenance