about summary refs log tree commit diff
path: root/tests/rustdoc/impl/sidebar-trait-impl-disambiguate-78701.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/rustdoc/impl/sidebar-trait-impl-disambiguate-78701.rs')
-rw-r--r--tests/rustdoc/impl/sidebar-trait-impl-disambiguate-78701.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/rustdoc/impl/sidebar-trait-impl-disambiguate-78701.rs b/tests/rustdoc/impl/sidebar-trait-impl-disambiguate-78701.rs
new file mode 100644
index 00000000000..b1bf029cf84
--- /dev/null
+++ b/tests/rustdoc/impl/sidebar-trait-impl-disambiguate-78701.rs
@@ -0,0 +1,21 @@
+// https://github.com/rust-lang/rust/issues/78701
+#![crate_name = "foo"]
+
+// This test ensures that if a blanket impl has the same ID as another impl, it'll
+// link to the blanket impl and not the other impl. Basically, we're checking if
+// the ID is correctly derived.
+
+//@ has 'foo/struct.AnotherStruct.html'
+//@ count - '//*[@class="sidebar"]//a[@href="#impl-AnAmazingTrait-for-AnotherStruct%3C()%3E"]' 1
+//@ count - '//*[@class="sidebar"]//a[@href="#impl-AnAmazingTrait-for-T"]' 1
+
+pub trait Something {}
+
+pub trait AnAmazingTrait {}
+
+impl<T: Something> AnAmazingTrait for T {}
+
+pub struct AnotherStruct<T>(T);
+
+impl<T: Something> Something for AnotherStruct<T> {}
+impl AnAmazingTrait for AnotherStruct<()> {}