Auto merge of #124482 - spastorino:unsafe-extern-blocks, r=oli-obk

Unsafe extern blocks

This implements RFC 3484.

Tracking issue #123743 and RFC https://github.com/rust-lang/rfcs/pull/3484

This is better reviewed commit by commit.
This commit is contained in:
bors 2024-06-06 08:14:58 +00:00
commit ea13653f6f

View File

@ -308,13 +308,15 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
ty: lt, ty: lt,
mutability: lm, mutability: lm,
expr: le, expr: le,
safety: ls,
}), }),
Static(box StaticItem { Static(box StaticItem {
ty: rt, ty: rt,
mutability: rm, mutability: rm,
expr: re, expr: re,
safety: rs,
}), }),
) => lm == rm && eq_ty(lt, rt) && eq_expr_opt(le, re), ) => lm == rm && ls == rs && eq_ty(lt, rt) && eq_expr_opt(le, re),
( (
Const(box ConstItem { Const(box ConstItem {
defaultness: ld, defaultness: ld,
@ -451,13 +453,15 @@ pub fn eq_foreign_item_kind(l: &ForeignItemKind, r: &ForeignItemKind) -> bool {
ty: lt, ty: lt,
mutability: lm, mutability: lm,
expr: le, expr: le,
safety: ls,
}), }),
Static(box StaticForeignItem { Static(box StaticForeignItem {
ty: rt, ty: rt,
mutability: rm, mutability: rm,
expr: re, expr: re,
safety: rs,
}), }),
) => lm == rm && eq_ty(lt, rt) && eq_expr_opt(le, re), ) => lm == rm && eq_ty(lt, rt) && eq_expr_opt(le, re) && ls == rs,
( (
Fn(box ast::Fn { Fn(box ast::Fn {
defaultness: ld, defaultness: ld,