diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2020-08-12 00:12:49 +0200 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2020-08-12 11:09:24 +0200 |
| commit | fc6fb3fb8ff4589bf766e09670b1e0b005581500 (patch) | |
| tree | 3a2634cef6fb51746cfb46ebc590f8cd92a1149c /src | |
| parent | 3b6e4a84f92995f75cd2ab26b9b15eb508f85336 (diff) | |
| download | rust-fc6fb3fb8ff4589bf766e09670b1e0b005581500.tar.gz rust-fc6fb3fb8ff4589bf766e09670b1e0b005581500.zip | |
Allow #[doc(alias)] on impl const items
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_passes/check_attr.rs | 8 | ||||
| -rw-r--r-- | src/test/rustdoc-js/doc-alias.js | 18 | ||||
| -rw-r--r-- | src/test/rustdoc-js/doc-alias.rs | 2 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/check-doc-alias-attr-location.rs | 4 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/check-doc-alias-attr-location.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/check-doc-alias-attr-location.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/check-doc-alias-attr-location.stderr | 8 |
7 files changed, 24 insertions, 26 deletions
diff --git a/src/librustc_passes/check_attr.rs b/src/librustc_passes/check_attr.rs index a729bb55110..62ba412cb41 100644 --- a/src/librustc_passes/check_attr.rs +++ b/src/librustc_passes/check_attr.rs @@ -241,15 +241,11 @@ impl CheckAttrVisitor<'tcx> { if let Some(err) = match target { Target::Impl => Some("implementation block"), Target::ForeignMod => Some("extern block"), - Target::AssocConst | Target::AssocTy => { + Target::AssocTy => { let parent_hir_id = self.tcx.hir().get_parent_item(hir_id); let containing_item = self.tcx.hir().expect_item(parent_hir_id); if Target::from_item(containing_item) == Target::Impl { - Some(if target == Target::AssocConst { - "const in implementation block" - } else { - "type alias in implementation block" - }) + Some("type alias in implementation block") } else { None } diff --git a/src/test/rustdoc-js/doc-alias.js b/src/test/rustdoc-js/doc-alias.js index 896808d4157..ff188d51458 100644 --- a/src/test/rustdoc-js/doc-alias.js +++ b/src/test/rustdoc-js/doc-alias.js @@ -5,7 +5,7 @@ const QUERY = [ 'StructFieldItem', 'StructMethodItem', 'ImplTraitItem', - 'ImplAssociatedConstItem', + 'StructImplConstItem', 'ImplTraitFunction', 'EnumItem', 'VariantItem', @@ -64,8 +64,16 @@ const EXPECTED = [ 'others': [], }, { - // ImplAssociatedConstItem - 'others': [], + // StructImplConstItem + 'others': [ + { + 'path': 'doc_alias::Struct', + 'name': 'ImplConstItem', + 'alias': 'StructImplConstItem', + 'href': '../doc_alias/struct.Struct.html#associatedconstant.ImplConstItem', + 'is_alias': true + }, + ], }, { 'others': [ @@ -197,6 +205,10 @@ const EXPECTED = [ 'href': '../doc_alias/constant.Const.html', 'is_alias': true }, + { + 'path': 'doc_alias::Struct', + 'name': 'ImplConstItem', + }, ], }, { diff --git a/src/test/rustdoc-js/doc-alias.rs b/src/test/rustdoc-js/doc-alias.rs index 28a720d06e8..41caa98643c 100644 --- a/src/test/rustdoc-js/doc-alias.rs +++ b/src/test/rustdoc-js/doc-alias.rs @@ -7,6 +7,8 @@ pub struct Struct { } impl Struct { + #[doc(alias = "StructImplConstItem")] + pub const ImplConstItem: i32 = 0; #[doc(alias = "StructMethodItem")] pub fn method(&self) {} } diff --git a/src/test/rustdoc-ui/check-doc-alias-attr-location.rs b/src/test/rustdoc-ui/check-doc-alias-attr-location.rs index 8a97cf7f8e8..545964c7bd6 100644 --- a/src/test/rustdoc-ui/check-doc-alias-attr-location.rs +++ b/src/test/rustdoc-ui/check-doc-alias-attr-location.rs @@ -11,8 +11,8 @@ extern {} #[doc(alias = "bar")] //~ ERROR impl Bar { - #[doc(alias = "const")] //~ ERROR - const A: u32 = 0; + #[doc(alias = "const")] + pub const A: u32 = 0; } #[doc(alias = "foobar")] //~ ERROR diff --git a/src/test/rustdoc-ui/check-doc-alias-attr-location.stderr b/src/test/rustdoc-ui/check-doc-alias-attr-location.stderr index cc51101c164..a66e9939eaf 100644 --- a/src/test/rustdoc-ui/check-doc-alias-attr-location.stderr +++ b/src/test/rustdoc-ui/check-doc-alias-attr-location.stderr @@ -16,17 +16,11 @@ error: `#[doc(alias = "...")]` isn't allowed on implementation block LL | #[doc(alias = "foobar")] | ^^^^^^^^^^^^^^^^ -error: `#[doc(alias = "...")]` isn't allowed on const in implementation block - --> $DIR/check-doc-alias-attr-location.rs:14:11 - | -LL | #[doc(alias = "const")] - | ^^^^^^^^^^^^^^^ - error: `#[doc(alias = "...")]` isn't allowed on type alias in implementation block --> $DIR/check-doc-alias-attr-location.rs:20:11 | LL | #[doc(alias = "assoc")] | ^^^^^^^^^^^^^^^ -error: aborting due to 5 previous errors +error: aborting due to 4 previous errors diff --git a/src/test/ui/check-doc-alias-attr-location.rs b/src/test/ui/check-doc-alias-attr-location.rs index 9f0b1dcf44a..dac9b7372e0 100644 --- a/src/test/ui/check-doc-alias-attr-location.rs +++ b/src/test/ui/check-doc-alias-attr-location.rs @@ -12,7 +12,7 @@ extern {} #[doc(alias = "bar")] //~ ERROR impl Bar { - #[doc(alias = "const")] //~ ERROR + #[doc(alias = "const")] const A: u32 = 0; } diff --git a/src/test/ui/check-doc-alias-attr-location.stderr b/src/test/ui/check-doc-alias-attr-location.stderr index b4a0847a002..29a99e4470e 100644 --- a/src/test/ui/check-doc-alias-attr-location.stderr +++ b/src/test/ui/check-doc-alias-attr-location.stderr @@ -16,17 +16,11 @@ error: `#[doc(alias = "...")]` isn't allowed on implementation block LL | #[doc(alias = "foobar")] | ^^^^^^^^^^^^^^^^ -error: `#[doc(alias = "...")]` isn't allowed on const in implementation block - --> $DIR/check-doc-alias-attr-location.rs:15:11 - | -LL | #[doc(alias = "const")] - | ^^^^^^^^^^^^^^^ - error: `#[doc(alias = "...")]` isn't allowed on type alias in implementation block --> $DIR/check-doc-alias-attr-location.rs:21:11 | LL | #[doc(alias = "assoc")] | ^^^^^^^^^^^^^^^ -error: aborting due to 5 previous errors +error: aborting due to 4 previous errors |
