diff options
| author | J. Ryan Stinnett <jryans@gmail.com> | 2021-01-03 13:13:30 +0000 |
|---|---|---|
| committer | J. Ryan Stinnett <jryans@gmail.com> | 2021-01-08 07:15:03 +0000 |
| commit | 8eaf68f92c213358dda59dc3eb648036ab62e18d (patch) | |
| tree | c647188378110e5958ae64f5f4e90942215905db /src/test/rustdoc/deref-recursive-pathbuf.rs | |
| parent | 06ce97c3c938c18ed392e72e535931443c1455c0 (diff) | |
| download | rust-8eaf68f92c213358dda59dc3eb648036ab62e18d.tar.gz rust-8eaf68f92c213358dda59dc3eb648036ab62e18d.zip | |
Preserve non-local recursive `Deref` impls
This adjusts the `rustdoc` trait impl collection path to preserve `Deref` impls from other crates. This adds a first pass to map all of the `Deref` type to target edges and then recursively preserves all targets.
Diffstat (limited to 'src/test/rustdoc/deref-recursive-pathbuf.rs')
| -rw-r--r-- | src/test/rustdoc/deref-recursive-pathbuf.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test/rustdoc/deref-recursive-pathbuf.rs b/src/test/rustdoc/deref-recursive-pathbuf.rs new file mode 100644 index 00000000000..759e881aab4 --- /dev/null +++ b/src/test/rustdoc/deref-recursive-pathbuf.rs @@ -0,0 +1,26 @@ +// ignore-tidy-linelength + +// #26207: Show all methods reachable via Deref impls, recursing through multiple dereferencing +// levels and across multiple crates. + +// @has 'foo/struct.Foo.html' +// @has '-' '//*[@id="deref-methods-PathBuf"]' 'Methods from Deref<Target = PathBuf>' +// @has '-' '//*[@class="impl-items"]//*[@id="method.as_path"]' 'pub fn as_path(&self)' +// @has '-' '//*[@id="deref-methods-Path"]' 'Methods from Deref<Target = Path>' +// @has '-' '//*[@class="impl-items"]//*[@id="method.exists"]' 'pub fn exists(&self)' +// @has '-' '//*[@class="sidebar-title"][@href="#deref-methods-PathBuf"]' 'Methods from Deref<Target=PathBuf>' +// @has '-' '//*[@class="sidebar-links"]/a[@href="#method.as_path"]' 'as_path' +// @has '-' '//*[@class="sidebar-title"][@href="#deref-methods-Path"]' 'Methods from Deref<Target=Path>' +// @has '-' '//*[@class="sidebar-links"]/a[@href="#method.exists"]' 'exists' + +#![crate_name = "foo"] + +use std::ops::Deref; +use std::path::PathBuf; + +pub struct Foo(PathBuf); + +impl Deref for Foo { + type Target = PathBuf; + fn deref(&self) -> &PathBuf { &self.0 } +} |
