diff options
| author | binarycat <binarycat@envs.net> | 2025-09-21 16:42:12 -0500 |
|---|---|---|
| committer | binarycat <binarycat@envs.net> | 2025-10-02 15:29:22 -0500 |
| commit | d0dc603c3992cc4903bb77f949b0b9bebf1ea7a8 (patch) | |
| tree | 313ddc167f31eb6577720c6c19ae804f7139486a | |
| parent | a145dfff03d562584a4a00552fb5df67cdd0d2b6 (diff) | |
| download | rust-d0dc603c3992cc4903bb77f949b0b9bebf1ea7a8.tar.gz rust-d0dc603c3992cc4903bb77f949b0b9bebf1ea7a8.zip | |
rustdoc: add testcase for traitParent deduplication
| -rw-r--r-- | tests/rustdoc-js/trait-methods.js | 20 | ||||
| -rw-r--r-- | tests/rustdoc-js/trait-methods.rs | 18 |
2 files changed, 38 insertions, 0 deletions
diff --git a/tests/rustdoc-js/trait-methods.js b/tests/rustdoc-js/trait-methods.js index dafad5e4378..083e52439f4 100644 --- a/tests/rustdoc-js/trait-methods.js +++ b/tests/rustdoc-js/trait-methods.js @@ -9,4 +9,24 @@ const EXPECTED = [ { 'path': 'trait_methods::MyTrait', 'name': 'next' }, ], }, + // the traitParent deduplication pass should remove + // Empty::next, as it would be redundant + { + 'query': 'next', + 'correction': null, + 'in_args': [], + 'others': [ + { 'path': 'trait_methods::MyTrait', 'name': 'next' }, + ], + }, + // if the trait does not match, no deduplication happens + { + 'query': '-> option<()>', + 'correction': null, + 'in_args': [], + 'others': [ + { 'path': 'trait_methods::Empty', 'name': 'next' }, + { 'path': 'trait_methods::Void', 'name': 'next' }, + ], + }, ]; diff --git a/tests/rustdoc-js/trait-methods.rs b/tests/rustdoc-js/trait-methods.rs index c88f5edfd55..a741b361a33 100644 --- a/tests/rustdoc-js/trait-methods.rs +++ b/tests/rustdoc-js/trait-methods.rs @@ -2,3 +2,21 @@ pub trait MyTrait { type Item; fn next(&mut self) -> Option<Self::Item>; } + +pub struct Empty; + +impl MyTrait for Empty { + type Item = (); + fn next(&mut self) -> Option<()> { + None + } +} + +pub struct Void; + +impl MyTrait for Void { + type Item = (); + fn next(&mut self) -> Option<()> { + Some(()) + } +} |
