Commit d427643
authored
Fix bug with library-modeled return types, method references, and streams (#1706)
In `LibraryModelsHandler.onOverrideMethodType` we neglected to apply
top-level `@Nullable` annotations from library models. This impacted
cases like the new `streamMapNullableMapGetMethodReferenceTest`.
While investigating this issue, I realized that the test from #1462 now
passes, along with a similar test that actually uses the library types,
so enable those.
Fixes #1462
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved handling of nullable return values and top-level annotations
in modeled library methods.
* Enhanced nullability analysis for stream transformations and method
references.
* **Tests**
* Added coverage for detecting unsafe dereferences of nullable stream
results.
* Added coverage for safely filtering nullable map lookups before
collection.
* Enabled an existing stream nullability test.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->1 parent 6329102 commit d427643
3 files changed
Lines changed: 71 additions & 10 deletions
File tree
- nullaway/src
- main/java/com/uber/nullaway/handlers
- test/java/com/uber/nullaway
- jspecify
Lines changed: 20 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
498 | 498 | | |
499 | 499 | | |
500 | 500 | | |
501 | | - | |
502 | | - | |
503 | | - | |
504 | | - | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
505 | 505 | | |
506 | 506 | | |
507 | 507 | | |
| |||
516 | 516 | | |
517 | 517 | | |
518 | 518 | | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
519 | 525 | | |
520 | 526 | | |
521 | | - | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
522 | 530 | | |
523 | 531 | | |
524 | 532 | | |
| |||
546 | 554 | | |
547 | 555 | | |
548 | 556 | | |
549 | | - | |
550 | | - | |
551 | | - | |
552 | | - | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
553 | 564 | | |
554 | 565 | | |
555 | 566 | | |
| |||
Lines changed: 51 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
163 | 214 | | |
164 | 215 | | |
165 | 216 | | |
| |||
Lines changed: 0 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1027 | 1027 | | |
1028 | 1028 | | |
1029 | 1029 | | |
1030 | | - | |
1031 | 1030 | | |
1032 | 1031 | | |
1033 | 1032 | | |
| |||
0 commit comments