- Allow models to override @nullable on third-party functional interfaces (#326)
- Defines Guava's Function and Predicate as @NonNull->@NonNull by default.
- Add support for Jar to Jar transformation to JarInfer (#316)
- Refactor the driver and annotation summary type in JarInfer (#317)
- Minor refactor and cleanup in JarInfer-lib (#319)
- Different approach for param analysis (#320)
- Fix @NullableDecl support (#324)
- Treat methods of final classes as final for initialization. (#325)
- Optional support for assertThat(...).isNotNull() statements (#304)
- Fix NPE in AccessPathElement.toString() (#306)
- Add tests for optional emptiness support with Rx (#308)
- Support for assertThat in JUnit and Hamcrest. (#310)
- Add support for CoreMatchers and core.IsNull in hamcrest. (#311)
- Make class-level caches for InferredJARModelsHandler instance fields. (#315)
- Install GJF hook using a gradle task, rather than a gradlew hack (#298).
- Nullable switch expression support (#300).
- Upgrade to Error Prone 2.3.3 (#295). Update Gradle, Error Prone plugin, and Android Gradle Plugin (#294). Add support for UNSIGNED_RIGHT_SHIFT (#303).
- Remove warning about @nullable var args (#296).
- Added Optional emptiness handler (#278).
-XepOpt:NullAway:CheckOptionalEmptiness=true
to enable (experimental) support forOptional
emptiness. - Improved (partial but sound-er) varargs support (#291).
- Refactor for ErrorMessage class use (#284).
- Custom path to Optional class for Optional emptiness handler (#288).
- Add support for methods taking literal constant args in Access Paths. (#285).
This only adds a minor library fix supporting Guava's Preconditions.checkNotNull with an error message argument (#283)
- Various fixes for generating @SuppressWarnings (#271)
- Improved error message now doesn't tell users to report NullAway config errors to Error Prone (#273)
- Adding support for Activity and Fragment coming from the support libraries (#275)
- Library models fixes (#277)
- Add Fragment.onViewCreated as a known initializer. (#279)
- Initial support for JDK 11 (#263). Core NullAway should be working, but JarInfer does not yet work.
- Disable JarInfer handler by default (#261).
-XepOpt:NullAway:JarInferEnabled=true
is now required to enable the JarInfer handler. - Add models for Apache StringUtils isEmpty methods (#264)
- Optimize library model lookups to reduce overhead (#265)
- Fix handling of enhanced for loops (#256)
- Handle lambda override with AcknowledgeRestrictiveAnnotations (#255)
- Handle interaction between AcknowledgeRestrictiveAnnotations and TreatGeneratedAsUnannotated (#254)
- Enable excluded class annotations to (mostly) work on inner classes (#239)
- Assertion of not equal to null updates the access path (#240)
- Update Gradle examples in README (#244)
- Change how jarinfer finds astubx model jars. (#243)
- Update to Error Prone 2.3.2 (#242)
- Update net.ltgt.errorprone to 0.6, and build updates ((#248)
- Restrictive annotated method overriding (#249)
Note: This can require significant annotation changes if
-XepOpt:NullAway:AcknowledgeRestrictiveAnnotations=true
is set. Not a new minor version, since that option is false by default. - Fix error on checking the initTree2PrevFieldInit cache. (#252)
- Add support for renamed android.support packages in models. (#253)
- Add support for marking library parameters as explicitly @Nullable (#228)
- De-genericize NullnessStore (#231)
- Bump Checker Framework to 2.5.5 (#233)
- Pass nullability info on enclosing locals into dataflow analysis for lambdas and anonymous / local classes (#235)
- Add coverage measurement through coveralls. (#224)
- Fix empty comment added when AutoFixSuppressionComment is not set. (#225)
- Make JarInfer generated jars fully deterministic by removing timestamps. (#227)
- Allow for custom Error URLS (#220)
- Fix crash with native methods invoked from initializer (#222)
- Add AutoFixSuppressionComment flag. (#213)
- [JarInfer] Write to/load from separate astubx model jars (#214)
- Update readme and tooling versions (#217)
- Update to Error Prone 2.3.1 and centralize Java compiler flags (#218)
- [JarInfer] Handler for @Nullable return value annotations (#216)
- JarInfer: Third-party bytecode analysis (MVP version) (#199)
- Handle @NotNull in hasNonNullAnnotation. (#204)
- Handler for separate Android models jar (#206)
- fix: zip entry size error (#207)
- Small test for restrictive annotations and generics. (#209)
- Create android-jarinfer-models-sdk28 and fix release scripts. (#210)
- JarInfer checks for null tested parameters #211
Note: This is the first release to include jar-infer-cli, jar-infer-lib, and android-jarinfer-models-sdk28 artifacts
- Fix NPE in Thrift handler on complex receiver expressions (#195)
- Add ExcludedFieldAnnotations unit tests. (#192)
- Various crash fixes (#196)
- Fix @NonNull argument detection in RestrictiveAnnotationHandler. (#198)
- Various fixes for AcknowledgeRestrictiveAnnotations (#194)
- Breaking change: Warn when castToNonNull method is not passed @NonNull (#191)
- Add -XepOpt:NullAway:AcknowledgeRestrictiveAnnotations config flag. (#189)
- WARNING: This feature is broken in this release, fixed on 0.5.1
- Add support for LEFT_SHIFT and RIGHT_SHIFT (#188)
- Remove a suppression from a test that doesn't need it. (#183)
- Support Objects.isNull (#179)
- Clean up some unnecessary state (#168)
- Properly read type use annotations when code is present as a class file (#172)
- Fix NPE inside NullAway when initializer methods use try-with-resources (#177)
- Fix a couple of Thrift issues (#164)
- Don't report initialization warnings on fields for @ExternalInit classes with no initializer methods (#166)
- Fix bug with handling Thrift
TBase.isSet()
calls (#161)
- add UnannotatedClasses option (#160)
- properly handle compound assignments (#157)
- handle unboxing of array index expression (#158)
- Upgrade Checker Framework dependency to upstream version 2.5.0 (#150)
- Don't crash on field initialization inside an enum (#146)
- Properly find super constructor for anonymous classes (#147)
- Add a Handler for supporting isSetXXXX() methods in Thrift-generated code (#148)
- Use
@SuppressWarnings
as autofix in a couple more places (#149)
- Initial RxNullabilityPropagator support for method references. (#141)
- Support for checking uses of method references (#139, #140). Note that this may lead to new NullAway warnings being reported for code that previously passed.
- Add support for
Observable.doOnNext
to RxNullabilityPropagator (#137)
- Small bug fix in
@Contract
support (#136)
- Support for a subset of JetBrains
@Contract
annotations (#129) - Built-in support for JUnit 4/5 assertNotNull, Objects.requireNonNull
- Fix crash when using try-with-resource with an empty try block. (#135)
- Support for treating
@Generated
-annotated classes as unannotated (#127)
- Support for classes with external initialization (#124)
- Made dependence on Guava explicit (#120)
- Significantly improved handling of try/finally (#123)
- Just fixed a Gradle configuration problem
- Bug fixes (#107, #108, #110, #112)
- Update library models to require full method signatures rather than just method names (#90). This is an API-breaking change; if you've written your own library models, they will need to be updated.
- Support @BeforeEach and @BeforeAll as initializer annotations, and @Inject and @LazyInit as excluded field annotations. (#81)
- Support Checker Framework's @NullableDecl annotation (#84)
- Add models for java.util.Deque methods (#86)
- Add model for WebView.getUrl() (#91)
- minor fixes (#69, #71)
- Fix bug with accesses of fields from unannotated packages (#67)
- Add models for ArrayDeque (#68)
- New feature: NullAway now does some checking that
@NonNull
fields are not used before the are initialized (#58, #63). Updating to 0.2.0 may cause "read before initialized" problems to be detected in code that was NullAway-clean before. - Model
Throwable.getMessage()
as returning@Nullable
, matching the spec. This may also cause new warnings in code that was previously NullAway-clean.
- Make NullAway's Error Prone dependence compileOnly (#50). This could help reduce size of annotation processor paths, speeding build times.
- Handle AND, OR, XOR expressions getting autoboxed (#55)
- Handle @Nullable type use annotations (#56)
- -XepOpt:NullAway:ExcludedClasses accepts package prefixes. (#38)
- Handle unary minus and unary plus (#40)
- Handle prefix increment / decrement (#43)
- add check for unannotated packages when excluding a class (#46)
- We now check static fields and initializer blocks (#34)
- Fix for lambdas where the functional interface method had
void
return type (#37)
- Add finer grained suppressions and auto-fixes (#31). You can
suppress initialization errors specifically now with
@SuppressWarnings("NullAway.Init")
- Fix performance issue with lambdas (#29)
- Add lambda support to the RxNullabilityPropagator handler. (#12)
- Another lambda fix (#23)
- Fixes for lambdas (#13, #17)
- Downgrade Checker Framework due to crash (#7)
- More modeling of Rx operators (#8)
- Update Checker Framework dependence to pick up bug fix (#4)
- Initial release