Skip to content

Conversation

@eggyal
Copy link
Contributor

@eggyal eggyal commented Feb 2, 2026

Within a binding pattern match guard, only real reads of a bound local impact its liveness analysis - not the fake read that is injected.

Fixes #151983
r? compiler

@rustbot
Copy link
Collaborator

rustbot commented Feb 2, 2026

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Feb 2, 2026
@rust-log-analyzer

This comment has been minimized.

Within a binding pattern match guard, only real reads of a bound local
impact its liveness analysis - not the fake read that is injected.
@eggyal eggyal force-pushed the unused-in-match-with-guard branch from ebaae22 to 5aba6b1 Compare February 2, 2026 10:58
@rustbot
Copy link
Collaborator

rustbot commented Feb 2, 2026

Some changes occurred in src/tools/clippy

cc @rust-lang/clippy

@rustbot rustbot added the T-clippy Relevant to the Clippy team. label Feb 2, 2026
let (lhs, rhs) = match expr.kind {
ExprKind::Binary(op, lhs, rhs) if matches!(op.node, BinOpKind::Sub,) => (lhs, rhs),
ExprKind::MethodCall(fn_name, lhs, [rhs], _) if cx.ty_based_def(expr).is_diag_item(cx, sym::sub) => {
ExprKind::MethodCall(_, lhs, [rhs], _) if cx.ty_based_def(expr).is_diag_item(cx, sym::sub) => {
Copy link
Contributor

Choose a reason for hiding this comment

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

Ha, nice that this finds a real case in clippy.

@nnethercote
Copy link
Contributor

@bors r+ rollup

@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 3, 2026

📌 Commit 5aba6b1 has been approved by nnethercote

It is now in the queue for this repository.

🌲 The tree is currently closed for pull requests below priority 1000. This pull request will be tested once the tree is reopened.

@rust-bors rust-bors bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 3, 2026
rust-bors bot pushed a commit that referenced this pull request Feb 3, 2026
Rollup of 11 pull requests

Successful merges:

 - #151378 (Codegen tests for Arm Cortex-R82)
 - #151936 (Move the `fingerprint_style` special case into `DepKindVTable` creation)
 - #152018 (Move bigint helper tracking issues)
 - #151958 (Add codegen test for SLP vectorization)
 - #151974 (Update documentation for `Result::ok()`)
 - #151975 (Work around rustfmt giving up on a large expression)
 - #151990 (Fix missing unused_variables lint when using a match guard)
 - #151995 (stabilize ptr_as_ref_unchecked)
 - #151999 (attribute parsing: pass recovery mode to Parser.)
 - #152009 (Port rustc_preserve_ub_checks to attr parser)
 - #152022 (rustc-dev-guide subtree update)

Failed merges:

 - #151968 (Remove `HasDepContext` by merging it into `QueryContext`)
@rust-bors rust-bors bot merged commit b73b822 into rust-lang:main Feb 3, 2026
11 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Feb 3, 2026
rust-timer added a commit that referenced this pull request Feb 3, 2026
Rollup merge of #151990 - eggyal:unused-in-match-with-guard, r=nnethercote

Fix missing unused_variables lint when using a match guard

Within a binding pattern match guard, only real reads of a bound local impact its liveness analysis - not the fake read that is injected.

Fixes #151983
r? compiler
@eggyal eggyal deleted the unused-in-match-with-guard branch February 3, 2026 09:11
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Feb 4, 2026
Rollup of 11 pull requests

Successful merges:

 - rust-lang/rust#151378 (Codegen tests for Arm Cortex-R82)
 - rust-lang/rust#151936 (Move the `fingerprint_style` special case into `DepKindVTable` creation)
 - rust-lang/rust#152018 (Move bigint helper tracking issues)
 - rust-lang/rust#151958 (Add codegen test for SLP vectorization)
 - rust-lang/rust#151974 (Update documentation for `Result::ok()`)
 - rust-lang/rust#151975 (Work around rustfmt giving up on a large expression)
 - rust-lang/rust#151990 (Fix missing unused_variables lint when using a match guard)
 - rust-lang/rust#151995 (stabilize ptr_as_ref_unchecked)
 - rust-lang/rust#151999 (attribute parsing: pass recovery mode to Parser.)
 - rust-lang/rust#152009 (Port rustc_preserve_ub_checks to attr parser)
 - rust-lang/rust#152022 (rustc-dev-guide subtree update)

Failed merges:

 - rust-lang/rust#151968 (Remove `HasDepContext` by merging it into `QueryContext`)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing "unused variable" warning when using a match guard

4 participants