Skip to content

Commit 8215418

Browse files
committed
Fix clippy::question_mark on let-else with cfg
Fixes: #13642
1 parent d8e9953 commit 8215418

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

clippy_lints/src/question_mark.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ fn check_let_some_else_return_none(cx: &LateContext<'_>, stmt: &Stmt<'_>) {
142142
&& let Some(ret) = find_let_else_ret_expression(els)
143143
&& let Some(inner_pat) = pat_and_expr_can_be_question_mark(cx, pat, ret)
144144
&& !span_contains_comment(cx.tcx.sess.source_map(), els.span)
145+
&& !span_contains_cfg(cx, els.span)
145146
{
146147
let mut applicability = Applicability::MaybeIncorrect;
147148
let init_expr_str = Sugg::hir_with_applicability(cx, init_expr, "..", &mut applicability).maybe_paren();

tests/ui/question_mark.fixed

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,3 +453,15 @@ fn const_in_pattern(x: Option<(i32, i32)>) -> Option<()> {
453453

454454
None
455455
}
456+
457+
fn issue_13642(x: Option<i32>) -> Option<()> {
458+
let Some(x) = x else {
459+
#[cfg(false)]
460+
panic!();
461+
462+
#[cfg(true)]
463+
return None;
464+
};
465+
466+
None
467+
}

tests/ui/question_mark.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,3 +549,15 @@ fn const_in_pattern(x: Option<(i32, i32)>) -> Option<()> {
549549

550550
None
551551
}
552+
553+
fn issue_13642(x: Option<i32>) -> Option<()> {
554+
let Some(x) = x else {
555+
#[cfg(false)]
556+
panic!();
557+
558+
#[cfg(true)]
559+
return None;
560+
};
561+
562+
None
563+
}

0 commit comments

Comments
 (0)