From adee37a080c7415f7ba496726557531ddf950919 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 27 Apr 2023 16:40:59 +0200 Subject: [PATCH 1/2] repr attribute needs to be stored to be used in doc(inline) by rustdoc --- compiler/rustc_feature/src/builtin_attrs.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/rustc_feature/src/builtin_attrs.rs b/compiler/rustc_feature/src/builtin_attrs.rs index c77292fdd1647..103e0f344070d 100644 --- a/compiler/rustc_feature/src/builtin_attrs.rs +++ b/compiler/rustc_feature/src/builtin_attrs.rs @@ -344,7 +344,7 @@ pub const BUILTIN_ATTRIBUTES: &[BuiltinAttribute] = &[ ), ungated!(link_name, Normal, template!(NameValueStr: "name"), FutureWarnPreceding), ungated!(no_link, Normal, template!(Word), WarnFollowing), - ungated!(repr, Normal, template!(List: "C"), DuplicatesOk, @only_local: true), + ungated!(repr, Normal, template!(List: "C"), DuplicatesOk), ungated!(export_name, Normal, template!(NameValueStr: "name"), FutureWarnPreceding), ungated!(link_section, Normal, template!(NameValueStr: "name"), FutureWarnPreceding), ungated!(no_mangle, Normal, template!(Word), WarnFollowing, @only_local: true), From 3f082843aa19d2bb51531688770eeae401249ceb Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 27 Apr 2023 16:41:22 +0200 Subject: [PATCH 2/2] Add regression test for #110698 --- tests/rustdoc/inline_cross/auxiliary/repr.rs | 4 ++++ tests/rustdoc/inline_cross/repr.rs | 13 +++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 tests/rustdoc/inline_cross/auxiliary/repr.rs create mode 100644 tests/rustdoc/inline_cross/repr.rs diff --git a/tests/rustdoc/inline_cross/auxiliary/repr.rs b/tests/rustdoc/inline_cross/auxiliary/repr.rs new file mode 100644 index 0000000000000..64a98f1814626 --- /dev/null +++ b/tests/rustdoc/inline_cross/auxiliary/repr.rs @@ -0,0 +1,4 @@ +#[repr(C)] +pub struct Foo { + field: u8, +} diff --git a/tests/rustdoc/inline_cross/repr.rs b/tests/rustdoc/inline_cross/repr.rs new file mode 100644 index 0000000000000..7e1f2799af1cd --- /dev/null +++ b/tests/rustdoc/inline_cross/repr.rs @@ -0,0 +1,13 @@ +// Regression test for . +// This test ensures that the re-exported items still have the `#[repr(...)]` attribute. + +// aux-build:repr.rs + +#![crate_name = "foo"] + +extern crate repr; + +// @has 'foo/struct.Foo.html' +// @has - '//*[@class="rust item-decl"]//*[@class="code-attribute"]' '#[repr(C)]' +#[doc(inline)] +pub use repr::Foo;