allow [manual_unwrap_or_default] in const function

This commit is contained in:
J-ZhengLi 2024-03-27 16:28:15 +08:00
parent b8b9b27500
commit c27f52d611
3 changed files with 16 additions and 2 deletions

View File

@ -7,9 +7,9 @@ use rustc_session::declare_lint_pass;
use rustc_span::sym; use rustc_span::sym;
use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::is_default_equivalent;
use clippy_utils::source::snippet_opt; use clippy_utils::source::snippet_opt;
use clippy_utils::ty::implements_trait; use clippy_utils::ty::implements_trait;
use clippy_utils::{in_constant, is_default_equivalent};
declare_clippy_lint! { declare_clippy_lint! {
/// ### What it does /// ### What it does
@ -172,7 +172,7 @@ fn handle_if_let<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) {
impl<'tcx> LateLintPass<'tcx> for ManualUnwrapOrDefault { impl<'tcx> LateLintPass<'tcx> for ManualUnwrapOrDefault {
fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) {
if expr.span.from_expansion() { if expr.span.from_expansion() || in_constant(cx, expr.hir_id) {
return; return;
} }
if !handle_match(cx, expr) { if !handle_match(cx, expr) {

View File

@ -26,3 +26,10 @@ unsafe fn no_deref_ptr(a: Option<i32>, b: *const Option<i32>) -> i32 {
_ => 0, _ => 0,
} }
} }
const fn issue_12568(opt: Option<bool>) -> bool {
match opt {
Some(s) => s,
None => false,
}
}

View File

@ -50,3 +50,10 @@ unsafe fn no_deref_ptr(a: Option<i32>, b: *const Option<i32>) -> i32 {
_ => 0, _ => 0,
} }
} }
const fn issue_12568(opt: Option<bool>) -> bool {
match opt {
Some(s) => s,
None => false,
}
}