about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDylan DPC <dylan.dpc@gmail.com>2021-04-05 13:03:43 +0200
committerGitHub <noreply@github.com>2021-04-05 13:03:43 +0200
commit98e7a4e7844f5099ec7e15228a42440931072e53 (patch)
tree39880e0afb289ba2fc46a4607acdf2abc2c93913
parent445aa40153b305cc2017c2ca05010193c2e7b5be (diff)
parent14fac683289dcd53625544edd3372e5fc737c7ed (diff)
downloadrust-98e7a4e7844f5099ec7e15228a42440931072e53.tar.gz
rust-98e7a4e7844f5099ec7e15228a42440931072e53.zip
Rollup merge of #83863 - eggyal:issue-83852, r=jyn514
Render destructured struct function param names as underscore

Fixes #83852

r? ````@GuillaumeGomez````
-rw-r--r--src/librustdoc/clean/utils.rs12
-rw-r--r--src/test/rustdoc/struct-arg-pattern.rs10
2 files changed, 11 insertions, 11 deletions
diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs
index 60cbe9f376f..9c0ed1480fe 100644
--- a/src/librustdoc/clean/utils.rs
+++ b/src/librustdoc/clean/utils.rs
@@ -251,19 +251,9 @@ crate fn name_from_pat(p: &hir::Pat<'_>) -> Symbol {
     debug!("trying to get a name from pattern: {:?}", p);
 
     Symbol::intern(&match p.kind {
-        PatKind::Wild => return kw::Underscore,
+        PatKind::Wild | PatKind::Struct(..) => return kw::Underscore,
         PatKind::Binding(_, _, ident, _) => return ident.name,
         PatKind::TupleStruct(ref p, ..) | PatKind::Path(ref p) => qpath_to_string(p),
-        PatKind::Struct(ref name, ref fields, etc) => format!(
-            "{} {{ {}{} }}",
-            qpath_to_string(name),
-            fields
-                .iter()
-                .map(|fp| format!("{}: {}", fp.ident, name_from_pat(&fp.pat)))
-                .collect::<Vec<String>>()
-                .join(", "),
-            if etc { ", .." } else { "" }
-        ),
         PatKind::Or(ref pats) => pats
             .iter()
             .map(|p| name_from_pat(&**p).to_string())
diff --git a/src/test/rustdoc/struct-arg-pattern.rs b/src/test/rustdoc/struct-arg-pattern.rs
new file mode 100644
index 00000000000..3c0369e3d34
--- /dev/null
+++ b/src/test/rustdoc/struct-arg-pattern.rs
@@ -0,0 +1,10 @@
+#![crate_name = "foo"]
+
+struct BodyId {
+    hir_id: usize,
+}
+
+// @has 'foo/fn.body_owner.html' '//*[@class="rust fn"]' 'pub fn body_owner(_: BodyId)'
+pub fn body_owner(BodyId { hir_id }: BodyId) {
+    // ...
+}