[Refactoring] Fix a crash that occurred when converting if/else of enum with raw value to switch statement #58611
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the enum has a raw value,
E
passed in toBinaryExpr
is aDeclRefExpr
, not aDotSyntaxCallExpr
, so we crashed ondyn_cast<DotSyntaxCallExpr>(E->getFn())->getFn()
.Only look through
DotSyntaxCallExpr
ifE
is indeed aDotSyntaxCallExpr
. While at it, fix a few other potential sources of nullptr crashes.rdar://84707973
CC @Regno