about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2020-08-12 00:12:49 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2020-08-12 11:09:24 +0200
commitfc6fb3fb8ff4589bf766e09670b1e0b005581500 (patch)
tree3a2634cef6fb51746cfb46ebc590f8cd92a1149c /src
parent3b6e4a84f92995f75cd2ab26b9b15eb508f85336 (diff)
downloadrust-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.rs8
-rw-r--r--src/test/rustdoc-js/doc-alias.js18
-rw-r--r--src/test/rustdoc-js/doc-alias.rs2
-rw-r--r--src/test/rustdoc-ui/check-doc-alias-attr-location.rs4
-rw-r--r--src/test/rustdoc-ui/check-doc-alias-attr-location.stderr8
-rw-r--r--src/test/ui/check-doc-alias-attr-location.rs2
-rw-r--r--src/test/ui/check-doc-alias-attr-location.stderr8
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