Skip to content

StatementSwitchToExpressionSwitch: handle empty statement blocks#3645

Closed
Stephan202 wants to merge 1 commit intogoogle:masterfrom
PicnicSupermarket:bugfix/issue-3638
Closed

StatementSwitchToExpressionSwitch: handle empty statement blocks#3645
Stephan202 wants to merge 1 commit intogoogle:masterfrom
PicnicSupermarket:bugfix/issue-3638

Conversation

@Stephan202
Copy link
Copy Markdown
Contributor

Fixes #3638.

copybara-service Bot pushed a commit that referenced this pull request Dec 31, 2022
Fixes #3638.

Fixes #3645

FUTURE_COPYBARA_INTEGRATE_REVIEW=#3645 from PicnicSupermarket:bugfix/issue-3638 773f647
PiperOrigin-RevId: 498735063
Stephan202 added a commit to PicnicSupermarket/error-prone that referenced this pull request Jan 2, 2023
Fixes google#3638.

Fixes google#3645

COPYBARA_INTEGRATE_REVIEW=google#3645 from PicnicSupermarket:bugfix/issue-3638 773f647
PiperOrigin-RevId: 498743647

(cherry picked from commit 96cd000)
@Stephan202 Stephan202 deleted the bugfix/issue-3638 branch January 2, 2023 06:36
@Stephan202
Copy link
Copy Markdown
Contributor Author

Okay, I now found some code that triggers another NPE, so this wasn't the whole story:

java.lang.NullPointerException: Cannot invoke "java.util.List.stream()" because the return value of "com.sun.source.tree.CaseTree.getStatements()" is null
	at com.google.errorprone.bugpatterns.StatementSwitchToExpressionSwitch.filterOutRedundantBreak(StatementSwitchToExpressionSwitch.java:314)
	at com.google.errorprone.bugpatterns.StatementSwitchToExpressionSwitch.convertDirectlyToExpressionSwitch(StatementSwitchToExpressionSwitch.java:207)
	at com.google.errorprone.bugpatterns.StatementSwitchToExpressionSwitch.matchSwitch(StatementSwitchToExpressionSwitch.java:96)

The offending code doesn't seem to have a case without statements 🤔. I can try to create a small reproducer ~EOD. (I have a packaged schedule until then; leaving this message here mostly as an FYI).

@Stephan202
Copy link
Copy Markdown
Contributor Author

Okay, I now found some code that triggers another NPE

I opened #3656 for that.

benkard pushed a commit to benkard/jgvariant that referenced this pull request Jan 14, 2023
This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [com.google.errorprone:error_prone_core](https://errorprone.info) ([source](https://github.com/google/error-prone)) |  | minor | `2.16` -> `2.18.0` |
| [com.google.errorprone:error_prone_annotations](https://errorprone.info) ([source](https://github.com/google/error-prone)) | compile | minor | `2.16` -> `2.18.0` |
| [org.apache.maven.plugins:maven-failsafe-plugin](https://maven.apache.org/surefire/) | build | patch | `3.0.0-M7` -> `3.0.0-M8` |
| [org.apache.maven.plugins:maven-surefire-plugin](https://maven.apache.org/surefire/) | build | patch | `3.0.0-M7` -> `3.0.0-M8` |

---

### Release Notes

<details>
<summary>google/error-prone</summary>

### [`v2.18.0`](https://github.com/google/error-prone/releases/tag/v2.18.0): Error Prone 2.18.0

[Compare Source](google/error-prone@v2.17.0...v2.18.0)

New Checkers:

-   [`InjectOnBugCheckers`](https://errorprone.info/bugpattern/InjectOnBugCheckers)
-   [`LabelledBreakTarget`](https://errorprone.info/bugpattern/LabelledBreakTarget)
-   [`UnusedLabel`](https://errorprone.info/bugpattern/UnusedLabel)
-   [`YodaCondition`](https://errorprone.info/bugpattern/YodaCondition)

Fixes issues: [#&#8203;1650](google/error-prone#1650), [#&#8203;2706](google/error-prone#2706), [#&#8203;3404](google/error-prone#3404), [#&#8203;3493](google/error-prone#3493), [#&#8203;3504](google/error-prone#3504), [#&#8203;3519](google/error-prone#3519), [#&#8203;3579](google/error-prone#3579), [#&#8203;3610](google/error-prone#3610), [#&#8203;3632](google/error-prone#3632), [#&#8203;3638](google/error-prone#3638), [#&#8203;3645](google/error-prone#3645), [#&#8203;3646](google/error-prone#3646), [#&#8203;3652](google/error-prone#3652), [#&#8203;3690](google/error-prone#3690)

**Full Changelog**: google/error-prone@v2.17.0...v2.18.0

### [`v2.17.0`](https://github.com/google/error-prone/releases/tag/v2.17.0): Error Prone 2.17.0

[Compare Source](google/error-prone@v2.16...v2.17.0)

New Checkers:

-   [`AvoidObjectArrays`](https://errorprone.info/bugpattern/AvoidObjectArrays)
-   [`Finalize`](https://errorprone.info/bugpattern/Finalize)
-   [`IgnoredPureGetter`](https://errorprone.info/bugpattern/IgnoredPureGetter)
-   [`ImpossibleNullComparison`](https://errorprone.info/bugpattern/ProtoFieldNullComparison)
-   [`MathAbsoluteNegative`](https://errorprone.info/bugpattern/MathAbsoluteNegative)
-   [`NewFileSystem`](https://errorprone.info/bugpattern/NewFileSystem)
-   [`StatementSwitchToExpressionSwitch`](https://errorprone.info/bugpattern/StatementSwitchToExpressionSwitch)
-   [`UnqualifiedYield`](https://errorprone.info/bugpattern/UnqualifiedYield)

Fixed issues: [#&#8203;2321](google/error-prone#2321), [#&#8203;3144](google/error-prone#3144), [#&#8203;3297](google/error-prone#3297), [#&#8203;3428](google/error-prone#3428), [#&#8203;3437](google/error-prone#3437), [#&#8203;3462](google/error-prone#3462), [#&#8203;3482](google/error-prone#3482), [#&#8203;3494](google/error-prone#3494)

**Full Changelog**: google/error-prone@v2.16...v2.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

👻 **Immortal**: This MR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjQuMCJ9-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[errorprone 2.17.0] NPE in StatementSwitchToExpressionSwitch.analyzeSwitchTree

2 participants