From cf2dff2b1e3fa55fa5415d524200070d0d7aacfe Mon Sep 17 00:00:00 2001 From: Albert Larsan <74931857+albertlarsan68@users.noreply.github.com> Date: Thu, 5 Jan 2023 09:13:28 +0100 Subject: Move /src/test to /tests --- tests/rustdoc/extern-default-method.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/rustdoc/extern-default-method.rs (limited to 'tests/rustdoc/extern-default-method.rs') diff --git a/tests/rustdoc/extern-default-method.rs b/tests/rustdoc/extern-default-method.rs new file mode 100644 index 00000000000..fc28b230a5f --- /dev/null +++ b/tests/rustdoc/extern-default-method.rs @@ -0,0 +1,23 @@ +// aux-build:rustdoc-extern-default-method.rs +// ignore-cross-compile +// ignore-tidy-linelength + +extern crate rustdoc_extern_default_method as ext; + +// For this test, the dependency is compiled but not documented. +// +// Still, the struct from the external crate and its impl should be documented since +// the struct is re-exported from this crate. +// However, the method in the trait impl should *not* have a link (an `href` attribute) to +// its corresponding item in the trait declaration since it would otherwise be broken. +// +// In older versions of rustdoc, the impl item (`a[@class="fn"]`) used to link to +// `#method.provided` – i.e. "to itself". Put in quotes since that was actually incorrect in +// general: If the type `Struct` also had an inherent method called `provided`, the impl item +// would link to that one even though those two methods are distinct items! + +// @count extern_default_method/struct.Struct.html '//*[@id="method.provided"]' 1 +// @count extern_default_method/struct.Struct.html '//*[@id="method.provided"]//a[@class="fn"]' 1 +// @snapshot no_href_on_anchor - '//*[@id="method.provided"]//a[@class="fn"]' +// @has extern_default_method/struct.Struct.html '//*[@id="method.provided"]//a[@class="anchor"]/@href' #method.provided +pub use ext::Struct; -- cgit 1.4.1-3-g733a5