Skip to content

needless_return: look inside else if parts as well #14798

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

samueltardieu
Copy link
Contributor

if expressions don't necessarily contain a block in the else part in the presence of an else if. The else part, if present, must be handled as a regular expression, not necessarily as a block expression.

Found while applying Clippy to triagebot and looking at the result. This also found an issue in Clippy itself.

changelog: [needless_return]: look inside else if parts as well

@rustbot
Copy link
Collaborator

rustbot commented May 14, 2025

r? @blyxyas

rustbot has assigned @blyxyas.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties label May 14, 2025
@blyxyas
Copy link
Member

blyxyas commented May 14, 2025

Writing PRs from Rust Week?

@blyxyas
Copy link
Member

blyxyas commented May 22, 2025

Testing the PR review limit

r? ghost

@rustbot
Copy link
Collaborator

rustbot commented May 22, 2025

Failed to set assignee to ghost: invalid assignee

Note: Only org members with at least the repository "read" role, users with write permissions, or people who have commented on the PR may be assigned.

@blyxyas blyxyas removed their assignment May 22, 2025
@blyxyas
Copy link
Member

blyxyas commented May 22, 2025

r? blyxyas

Copy link
Member

@blyxyas blyxyas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I spent 10 minutes crafting this absolutely awful testing code =^w^=

return 3;
//~^ needless_return
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add some weirded expressions, for future proofing (and checking that it works correctly right now)

Suggested change
}
fn test4(a: i32) -> u32 {
if a == 0 {
return 1;
} else if if if a > 0x1_1 {
return 2;
} else {
return 5;
} {true} else { true } { 0xDEADC0DE }
else if match a { b @ _ => { return 1; } }
{ 0xDEADBEEF }
else { 1 }
}
}

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action from the author. (Use `@rustbot ready` to update this status) and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties labels May 22, 2025
`if` expressions don't necessarily contain a block in the `else` part in
the presence of an `else if`. The `else` part, if present, must be
handled as a regular expression, not necessarily as a block expression.
@samueltardieu
Copy link
Contributor Author

Done. Only the first return can be removed here.

@samueltardieu samueltardieu requested a review from blyxyas May 23, 2025 11:26
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties and removed S-waiting-on-author Status: This is awaiting some action from the author. (Use `@rustbot ready` to update this status) labels May 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants