Fix fp in unnecessary_safety_comment

This commit is contained in:
koka 2023-01-09 18:49:46 +09:00
parent d29c4c9f63
commit 1a7ef02dcb
No known key found for this signature in database
GPG key ID: 6C126A20CF0961EC
2 changed files with 29 additions and 0 deletions

View file

@ -263,6 +263,18 @@ fn expr_has_unnecessary_safety_comment<'tcx>(
expr: &'tcx hir::Expr<'tcx>,
comment_pos: BytePos,
) -> Option<Span> {
if cx.tcx.hir().parent_iter(expr.hir_id).any(|(_, ref node)| {
matches!(
node,
Node::Block(&Block {
rules: BlockCheckMode::UnsafeBlock(UnsafeSource::UserProvided),
..
}),
)
}) {
return None;
}
// this should roughly be the reverse of `block_parents_have_safety_comment`
if for_each_expr_with_closures(cx, expr, |expr| match expr.kind {
hir::ExprKind::Block(

View file

@ -48,4 +48,21 @@ fn unnecessary_on_stmt_and_expr() -> u32 {
24
}
mod issue_10084 {
unsafe fn bar() -> i32 {
42
}
macro_rules! foo {
() => {
// SAFETY: This is necessary
unsafe { bar() }
};
}
fn main() {
foo!();
}
}
fn main() {}