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>
This commit is contained in:
parent
251206c27b
commit
ebd5ce1828
2 changed files with 76 additions and 0 deletions
30
tests/rustdoc-js-std/return-based-sort.js
Normal file
30
tests/rustdoc-js-std/return-based-sort.js
Normal file
|
@ -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' },
|
||||
],
|
||||
},
|
||||
]
|
Loading…
Add table
Add a link
Reference in a new issue