about summary refs log tree commit diff
path: root/clippy_lints/src
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2025-03-19 15:56:45 +0000
committerGitHub <noreply@github.com>2025-03-19 15:56:45 +0000
commit48ce25ea0e02f46d2888aed2f80cf86b2dc172d6 (patch)
treeff70807b34bb7bd3a94103e28f43479b6ac9d78b /clippy_lints/src
parent31497d68fb1e71f0a5facc0defec2c55260c6ac7 (diff)
parentd793c0abfa7997d65b8b52df7c8a15532c5b49df (diff)
Add MSRV check for `question_mark` (#14436)
changelog: [`question_mark`]: Now respects the [`msrv`] configuration
Diffstat (limited to 'clippy_lints/src')
-rw-r--r--clippy_lints/src/question_mark.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/clippy_lints/src/question_mark.rs b/clippy_lints/src/question_mark.rs
index 2c9d3c1ba1f..a80e1f79bbc 100644
--- a/clippy_lints/src/question_mark.rs
+++ b/clippy_lints/src/question_mark.rs
@@ -3,7 +3,7 @@ use crate::question_mark_used::QUESTION_MARK_USED;
 use clippy_config::Conf;
 use clippy_config::types::MatchLintBehaviour;
 use clippy_utils::diagnostics::span_lint_and_sugg;
-use clippy_utils::msrvs::Msrv;
+use clippy_utils::msrvs::{self, Msrv};
 use clippy_utils::source::snippet_with_applicability;
 use clippy_utils::ty::{implements_trait, is_type_diagnostic_item};
 use clippy_utils::{
@@ -524,7 +524,8 @@ fn is_inferred_ret_closure(expr: &Expr<'_>) -> bool {
 
 impl<'tcx> LateLintPass<'tcx> for QuestionMark {
     fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx Stmt<'_>) {
-        if !is_lint_allowed(cx, QUESTION_MARK_USED, stmt.hir_id) {
+        if !is_lint_allowed(cx, QUESTION_MARK_USED, stmt.hir_id) || !self.msrv.meets(cx, msrvs::QUESTION_MARK_OPERATOR)
+        {
             return;
         }
 
@@ -540,7 +541,10 @@ impl<'tcx> LateLintPass<'tcx> for QuestionMark {
             return;
         }
 
-        if !self.inside_try_block() && !is_in_const_context(cx) && is_lint_allowed(cx, QUESTION_MARK_USED, expr.hir_id)
+        if !self.inside_try_block()
+            && !is_in_const_context(cx)
+            && is_lint_allowed(cx, QUESTION_MARK_USED, expr.hir_id)
+            && self.msrv.meets(cx, msrvs::QUESTION_MARK_OPERATOR)
         {
             check_is_none_or_err_and_early_return(cx, expr);
             check_if_let_some_or_err_and_early_return(cx, expr);