about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMichael Howell <michael@notriddle.com>2022-05-09 17:50:39 -0700
committerMichael Howell <michael@notriddle.com>2022-05-09 17:50:39 -0700
commitbb4ecc3fd8d0d8c0fa490feba294e300185862e6 (patch)
tree7f29f41d492e60399f94094e1fb720aa807eb92d /src
parentcb390735b03aa44229ff2858be8fedbd7b0ce7cb (diff)
downloadrust-bb4ecc3fd8d0d8c0fa490feba294e300185862e6.tar.gz
rust-bb4ecc3fd8d0d8c0fa490feba294e300185862e6.zip
rustdoc: correct path to type alias methods
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/formats/cache.rs3
-rw-r--r--src/test/rustdoc-js-std/asrawfd.js14
2 files changed, 16 insertions, 1 deletions
diff --git a/src/librustdoc/formats/cache.rs b/src/librustdoc/formats/cache.rs
index 30190138750..862f0ecd0de 100644
--- a/src/librustdoc/formats/cache.rs
+++ b/src/librustdoc/formats/cache.rs
@@ -293,7 +293,8 @@ impl<'a, 'tcx> DocFolder for CacheBuilder<'a, 'tcx> {
                                 ItemType::Trait
                                 | ItemType::Struct
                                 | ItemType::Union
-                                | ItemType::Enum,
+                                | ItemType::Enum
+                                | ItemType::Typedef,
                             )) => Some(&fqp[..fqp.len() - 1]),
                             Some(..) => Some(&*self.cache.stack),
                             None => None,
diff --git a/src/test/rustdoc-js-std/asrawfd.js b/src/test/rustdoc-js-std/asrawfd.js
new file mode 100644
index 00000000000..37168fc4937
--- /dev/null
+++ b/src/test/rustdoc-js-std/asrawfd.js
@@ -0,0 +1,14 @@
+// exact-match
+
+const QUERY = 'RawFd::as_raw_fd';
+
+const EXPECTED = {
+    'others': [
+        // Reproduction test for https://github.com/rust-lang/rust/issues/78724
+        // Validate that type alias methods get the correct path.
+        { 'path': 'std::os::unix::io::AsRawFd', 'name': 'as_raw_fd' },
+        { 'path': 'std::os::wasi::io::AsRawFd', 'name': 'as_raw_fd' },
+        { 'path': 'std::os::linux::process::PidFd', 'name': 'as_raw_fd' },
+        { 'path': 'std::os::unix::io::RawFd', 'name': 'as_raw_fd' },
+    ],
+};