diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2022-05-11 13:16:31 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-11 13:16:31 +0900 |
| commit | ed9faeeddaa17cf46255ddc1875958426407daa9 (patch) | |
| tree | ab6963a67f89e3ec07c8659a4784984a1ccff246 | |
| parent | 81c0a2d96c42bd3b21111ad7a99026949f4e9a4c (diff) | |
| parent | 9dc5ac8c4bbf56bd1cae1bcb4f8af245b4b2d67e (diff) | |
| download | rust-ed9faeeddaa17cf46255ddc1875958426407daa9.tar.gz rust-ed9faeeddaa17cf46255ddc1875958426407daa9.zip | |
Rollup merge of #96887 - notriddle:notriddle/as-raw-fd, r=jsha
rustdoc: correct path to type alias methods Fixes #83991
| -rw-r--r-- | src/librustdoc/formats/cache.rs | 9 | ||||
| -rw-r--r-- | src/test/rustdoc-js-std/asrawfd.js | 14 | ||||
| -rw-r--r-- | src/test/rustdoc-js/foreign-type-path.js | 9 | ||||
| -rw-r--r-- | src/test/rustdoc-js/foreign-type-path.rs | 13 |
4 files changed, 37 insertions, 8 deletions
diff --git a/src/librustdoc/formats/cache.rs b/src/librustdoc/formats/cache.rs index 30190138750..9dc30d8a189 100644 --- a/src/librustdoc/formats/cache.rs +++ b/src/librustdoc/formats/cache.rs @@ -288,14 +288,7 @@ impl<'a, 'tcx> DocFolder for CacheBuilder<'a, 'tcx> { // for where the type was defined. On the other // hand, `paths` always has the right // information if present. - Some(&( - ref fqp, - ItemType::Trait - | ItemType::Struct - | ItemType::Union - | ItemType::Enum, - )) => Some(&fqp[..fqp.len() - 1]), - Some(..) => Some(&*self.cache.stack), + Some(&(ref fqp, _)) => Some(&fqp[..fqp.len() - 1]), None => None, }; ((Some(*last), path), true) diff --git a/src/test/rustdoc-js-std/asrawfd.js b/src/test/rustdoc-js-std/asrawfd.js new file mode 100644 index 00000000000..fd228a59099 --- /dev/null +++ b/src/test/rustdoc-js-std/asrawfd.js @@ -0,0 +1,14 @@ +// ignore-order + +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' }, + ], +}; diff --git a/src/test/rustdoc-js/foreign-type-path.js b/src/test/rustdoc-js/foreign-type-path.js new file mode 100644 index 00000000000..334761badca --- /dev/null +++ b/src/test/rustdoc-js/foreign-type-path.js @@ -0,0 +1,9 @@ +const QUERY = 'MyForeignType::my_method'; + +const EXPECTED = { + 'others': [ + // Test case for https://github.com/rust-lang/rust/pull/96887#pullrequestreview-967154358 + // Validates that the parent path for a foreign type method is correct. + { 'path': 'foreign_type_path::aaaaaaa::MyForeignType', 'name': 'my_method' }, + ], +}; diff --git a/src/test/rustdoc-js/foreign-type-path.rs b/src/test/rustdoc-js/foreign-type-path.rs new file mode 100644 index 00000000000..83400104ea7 --- /dev/null +++ b/src/test/rustdoc-js/foreign-type-path.rs @@ -0,0 +1,13 @@ +#![feature(extern_types)] + +pub mod aaaaaaa { + + extern { + pub type MyForeignType; + } + + impl MyForeignType { + pub fn my_method() {} + } + +} |
