diff --git a/crates/ra_hir_ty/src/unsafe_validation.rs b/crates/ra_hir_ty/src/unsafe_validation.rs index aad13d99cc..c512c4f8e9 100644 --- a/crates/ra_hir_ty/src/unsafe_validation.rs +++ b/crates/ra_hir_ty/src/unsafe_validation.rs @@ -108,13 +108,12 @@ fn walk_unsafe( unsafe_exprs.push(UnsafeExpr { expr: current, inside_unsafe_block }); } } + Expr::Unsafe { body: child } => { + return walk_unsafe(unsafe_exprs, db, infer, body, *child, true); + } _ => {} } - if let &Expr::Unsafe { body: child } = expr { - return walk_unsafe(unsafe_exprs, db, infer, body, child, true); - } - expr.walk_child_exprs(|child| { walk_unsafe(unsafe_exprs, db, infer, body, child, inside_unsafe_block); });