about summary refs log tree commit diff
path: root/tests/rustdoc-js-std
diff options
context:
space:
mode:
authorbinarycat <binarycat@envs.net>2025-01-09 14:16:05 -0600
committerbinarycat <binarycat@envs.net>2025-01-13 12:22:34 -0600
commitebd5ce1828dd2dfdef35786e1374c7ca30f1b0c9 (patch)
tree6c39517426a4d97ffc236a28a2400d7226016596 /tests/rustdoc-js-std
parent251206c27b619ccf3a08e2ac4c525dc343f08492 (diff)
downloadrust-ebd5ce1828dd2dfdef35786e1374c7ca30f1b0c9.tar.gz
rust-ebd5ce1828dd2dfdef35786e1374c7ca30f1b0c9.zip
for purely return-type based searches, deprioritize clone-like functions
A clone-like function in a function that takes as an argument the type
that it returns.

However, functions that return a type variable are not counted as
clone-line. Because we're not unifying the whole function at once,
a function like `U -> T` would otherwise be counted as "clone-like"
because the generics will just unify with anything when done seperatly.

Co-authored-by: Michael Howell <michael@notriddle.com>
Diffstat (limited to 'tests/rustdoc-js-std')
-rw-r--r--tests/rustdoc-js-std/return-based-sort.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/rustdoc-js-std/return-based-sort.js b/tests/rustdoc-js-std/return-based-sort.js
new file mode 100644
index 00000000000..30baf1cd36e
--- /dev/null
+++ b/tests/rustdoc-js-std/return-based-sort.js
@@ -0,0 +1,30 @@
+// test that `clone`-like functions are sorted lower when
+// a search is based soley on return type
+
+const FILTER_CRATE = "core";
+
+const EXPECTED = [
+    {
+        'query': '-> AllocError',
+        'others': [
+            { 'path': 'core::alloc::Allocator', 'name': 'allocate' },
+            { 'path': 'core::alloc::AllocError', 'name': 'clone' },
+        ],
+    },
+    {
+        'query': 'AllocError',
+        'returned': [
+            { 'path': 'core::alloc::Allocator', 'name': 'allocate' },
+            { 'path': 'core::alloc::AllocError', 'name': 'clone' },
+         ],
+    },
+    {
+        'query': '-> &str',
+        'others': [
+            // type_name_of_val should not be consider clone-like
+            { 'path': 'core::any', 'name': 'type_name_of_val' },
+            // this returns `Option<&str>`, and thus should be sorted lower
+            { 'path': 'core::str::Split', 'name': 'next' },
+         ],
+    },
+]