rustdoc-search: pass original names through AST
This commit is contained in:
parent
2cc1c0c39a
commit
5c7e7dfe10
@ -276,7 +276,7 @@ function getFilteredNextElem(query, parserState, elems, isInGenerics) {
|
||||
// The type filter doesn't count as an element since it's a modifier.
|
||||
const typeFilterElem = elems.pop();
|
||||
checkExtraTypeFilterCharacters(start, parserState);
|
||||
parserState.typeFilter = typeFilterElem.name;
|
||||
parserState.typeFilter = typeFilterElem.normalizedPathLast;
|
||||
parserState.pos += 1;
|
||||
parserState.totalElems -= 1;
|
||||
query.literalSearch = false;
|
||||
@ -686,7 +686,7 @@ function createQueryElement(query, parserState, name, generics, isInGenerics) {
|
||||
} else if (quadcolon !== null) {
|
||||
throw ["Unexpected ", quadcolon[0]];
|
||||
}
|
||||
const pathSegments = path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);
|
||||
const pathSegments = path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/).map(x => x.toLowerCase());
|
||||
// In case we only have something like `<p>`, there is no name.
|
||||
if (pathSegments.length === 0
|
||||
|| (pathSegments.length === 1 && pathSegments[0] === "")) {
|
||||
@ -726,7 +726,10 @@ function createQueryElement(query, parserState, name, generics, isInGenerics) {
|
||||
if (gen.name !== null) {
|
||||
gen.bindingName.generics.unshift(gen);
|
||||
}
|
||||
bindings.set(gen.bindingName.name, gen.bindingName.generics);
|
||||
bindings.set(
|
||||
gen.bindingName.name.toLowerCase().replace(/_/g, ""),
|
||||
gen.bindingName.generics,
|
||||
);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -1786,8 +1789,7 @@ class DocSearch {
|
||||
*/
|
||||
function newParsedQuery(userQuery) {
|
||||
return {
|
||||
original: userQuery,
|
||||
userQuery: userQuery.toLowerCase(),
|
||||
userQuery,
|
||||
elems: [],
|
||||
returned: [],
|
||||
// Total number of "top" elements (does not include generics).
|
||||
@ -1909,7 +1911,7 @@ class DocSearch {
|
||||
genericsElems: 0,
|
||||
typeFilter: null,
|
||||
isInBinding: null,
|
||||
userQuery: userQuery.toLowerCase(),
|
||||
userQuery,
|
||||
};
|
||||
let query = newParsedQuery(userQuery);
|
||||
|
||||
@ -2097,7 +2099,7 @@ class DocSearch {
|
||||
*/
|
||||
const sortResults = async(results, isType, preferredCrate) => {
|
||||
const userQuery = parsedQuery.userQuery;
|
||||
const casedUserQuery = parsedQuery.original;
|
||||
const normalizedUserQuery = parsedQuery.userQuery.toLowerCase();
|
||||
const result_list = [];
|
||||
for (const result of results.values()) {
|
||||
result.item = this.searchIndex[result.id];
|
||||
@ -2109,15 +2111,15 @@ class DocSearch {
|
||||
let a, b;
|
||||
|
||||
// sort by exact case-sensitive match
|
||||
a = (aaa.item.name !== casedUserQuery);
|
||||
b = (bbb.item.name !== casedUserQuery);
|
||||
a = (aaa.item.name !== userQuery);
|
||||
b = (bbb.item.name !== userQuery);
|
||||
if (a !== b) {
|
||||
return a - b;
|
||||
}
|
||||
|
||||
// sort by exact match with regard to the last word (mismatch goes later)
|
||||
a = (aaa.word !== userQuery);
|
||||
b = (bbb.word !== userQuery);
|
||||
a = (aaa.word !== normalizedUserQuery);
|
||||
b = (bbb.word !== normalizedUserQuery);
|
||||
if (a !== b) {
|
||||
return a - b;
|
||||
}
|
||||
@ -3163,21 +3165,25 @@ class DocSearch {
|
||||
if ((elem.id === null && parsedQuery.totalElems > 1 && elem.typeFilter === -1
|
||||
&& elem.generics.length === 0 && elem.bindings.size === 0)
|
||||
|| elem.typeFilter === TY_GENERIC) {
|
||||
if (genericSymbols.has(elem.name)) {
|
||||
elem.id = genericSymbols.get(elem.name);
|
||||
if (genericSymbols.has(elem.normalizedPathLast)) {
|
||||
elem.id = genericSymbols.get(elem.normalizedPathLast);
|
||||
} else {
|
||||
elem.id = -(genericSymbols.size + 1);
|
||||
genericSymbols.set(elem.name, elem.id);
|
||||
genericSymbols.set(elem.normalizedPathLast, elem.id);
|
||||
}
|
||||
if (elem.typeFilter === -1 && elem.name.length >= 3) {
|
||||
if (elem.typeFilter === -1 && elem.normalizedPathLast.length >= 3) {
|
||||
// Silly heuristic to catch if the user probably meant
|
||||
// to not write a generic parameter. We don't use it,
|
||||
// just bring it up.
|
||||
const maxPartDistance = Math.floor(elem.name.length / 3);
|
||||
const maxPartDistance = Math.floor(elem.normalizedPathLast.length / 3);
|
||||
let matchDist = maxPartDistance + 1;
|
||||
let matchName = "";
|
||||
for (const name of this.typeNameIdMap.keys()) {
|
||||
const dist = editDistance(name, elem.name, maxPartDistance);
|
||||
const dist = editDistance(
|
||||
name,
|
||||
elem.normalizedPathLast,
|
||||
maxPartDistance,
|
||||
);
|
||||
if (dist <= matchDist && dist <= maxPartDistance) {
|
||||
if (dist === matchDist && matchName > name) {
|
||||
continue;
|
||||
@ -3289,7 +3295,7 @@ class DocSearch {
|
||||
sorted_returned,
|
||||
sorted_others,
|
||||
parsedQuery);
|
||||
await handleAliases(ret, parsedQuery.original.replace(/"/g, ""),
|
||||
await handleAliases(ret, parsedQuery.userQuery.replace(/"/g, ""),
|
||||
filterCrates, currentCrate);
|
||||
await Promise.all([ret.others, ret.returned, ret.in_args].map(async list => {
|
||||
const descs = await Promise.all(list.map(result => {
|
||||
@ -3709,11 +3715,11 @@ async function search(forced) {
|
||||
}
|
||||
|
||||
// Update document title to maintain a meaningful browser history
|
||||
searchState.title = "\"" + query.original + "\" Search - Rust";
|
||||
searchState.title = "\"" + query.userQuery + "\" Search - Rust";
|
||||
|
||||
// Because searching is incremental by character, only the most
|
||||
// recent search query is added to the browser history.
|
||||
updateSearchHistory(buildUrl(query.original, filterCrates));
|
||||
updateSearchHistory(buildUrl(query.userQuery, filterCrates));
|
||||
|
||||
await showResults(
|
||||
await docSearch.execQuery(query, filterCrates, window.currentCrate),
|
||||
|
@ -84,7 +84,6 @@ function checkNeededFields(fullPath, expected, error_text, queryName, position)
|
||||
if (fullPath.length === 0) {
|
||||
fieldsToCheck = [
|
||||
"foundElems",
|
||||
"original",
|
||||
"returned",
|
||||
"userQuery",
|
||||
"error",
|
||||
|
@ -24,7 +24,7 @@ assert-css: (".search-corrections", {
|
||||
})
|
||||
assert-text: (
|
||||
".search-corrections",
|
||||
"Type \"notablestructwithlongnamr\" not found. Showing results for closest type name \"notablestructwithlongname\" instead."
|
||||
"Type \"NotableStructWithLongNamr\" not found. Showing results for closest type name \"notablestructwithlongname\" instead."
|
||||
)
|
||||
|
||||
// Corrections do get shown on the "In Return Type" tab.
|
||||
@ -35,7 +35,7 @@ assert-css: (".search-corrections", {
|
||||
})
|
||||
assert-text: (
|
||||
".search-corrections",
|
||||
"Type \"notablestructwithlongnamr\" not found. Showing results for closest type name \"notablestructwithlongname\" instead."
|
||||
"Type \"NotableStructWithLongNamr\" not found. Showing results for closest type name \"notablestructwithlongname\" instead."
|
||||
)
|
||||
|
||||
// Now, explicit return values
|
||||
@ -52,7 +52,7 @@ assert-css: (".search-corrections", {
|
||||
})
|
||||
assert-text: (
|
||||
".search-corrections",
|
||||
"Type \"notablestructwithlongnamr\" not found. Showing results for closest type name \"notablestructwithlongname\" instead."
|
||||
"Type \"NotableStructWithLongNamr\" not found. Showing results for closest type name \"notablestructwithlongname\" instead."
|
||||
)
|
||||
|
||||
// Now, generic correction
|
||||
@ -69,7 +69,7 @@ assert-css: (".search-corrections", {
|
||||
})
|
||||
assert-text: (
|
||||
".search-corrections",
|
||||
"Type \"notablestructwithlongnamr\" not found and used as generic parameter. Consider searching for \"notablestructwithlongname\" instead."
|
||||
"Type \"NotableStructWithLongNamr\" not found and used as generic parameter. Consider searching for \"notablestructwithlongname\" instead."
|
||||
)
|
||||
|
||||
// Now, generic correction plus error
|
||||
@ -86,7 +86,7 @@ assert-css: (".search-corrections", {
|
||||
})
|
||||
assert-text: (
|
||||
".search-corrections",
|
||||
"Type \"notablestructwithlongnamr\" not found and used as generic parameter. Consider searching for \"notablestructwithlongname\" instead."
|
||||
"Type \"NotableStructWithLongNamr\" not found and used as generic parameter. Consider searching for \"notablestructwithlongname\" instead."
|
||||
)
|
||||
|
||||
go-to: "file://" + |DOC_PATH| + "/test_docs/index.html"
|
||||
@ -102,5 +102,5 @@ assert-css: (".error", {
|
||||
})
|
||||
assert-text: (
|
||||
".error",
|
||||
"Query parser error: \"Generic type parameter notablestructwithlongnamr does not accept generic parameters\"."
|
||||
"Query parser error: \"Generic type parameter NotableStructWithLongNamr does not accept generic parameters\"."
|
||||
)
|
||||
|
@ -3,20 +3,22 @@ const PARSED = [
|
||||
query: 'A<B=C>',
|
||||
elems: [
|
||||
{
|
||||
name: "a",
|
||||
name: "A",
|
||||
fullPath: ["a"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "a",
|
||||
normalizedPathLast: "a",
|
||||
generics: [],
|
||||
bindings: [
|
||||
[
|
||||
'b',
|
||||
[
|
||||
{
|
||||
name: "c",
|
||||
name: "C",
|
||||
fullPath: ["c"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "c",
|
||||
normalizedPathLast: "c",
|
||||
generics: [],
|
||||
typeFilter: -1,
|
||||
},
|
||||
@ -27,16 +29,15 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: 'A<B=C>',
|
||||
userQuery: 'A<B=C>',
|
||||
returned: [],
|
||||
userQuery: 'a<b=c>',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'A<B = C>',
|
||||
elems: [
|
||||
{
|
||||
name: "a",
|
||||
name: "A",
|
||||
fullPath: ["a"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "a",
|
||||
@ -45,7 +46,7 @@ const PARSED = [
|
||||
[
|
||||
'b',
|
||||
[{
|
||||
name: "c",
|
||||
name: "C",
|
||||
fullPath: ["c"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "c",
|
||||
@ -58,16 +59,15 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: 'A<B = C>',
|
||||
userQuery: 'A<B = C>',
|
||||
returned: [],
|
||||
userQuery: 'a<b = c>',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'A<B=!>',
|
||||
elems: [
|
||||
{
|
||||
name: "a",
|
||||
name: "A",
|
||||
fullPath: ["a"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "a",
|
||||
@ -89,16 +89,15 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: 'A<B=!>',
|
||||
userQuery: 'A<B=!>',
|
||||
returned: [],
|
||||
userQuery: 'a<b=!>',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'A<B=[]>',
|
||||
elems: [
|
||||
{
|
||||
name: "a",
|
||||
name: "A",
|
||||
fullPath: ["a"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "a",
|
||||
@ -120,16 +119,15 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: 'A<B=[]>',
|
||||
userQuery: 'A<B=[]>',
|
||||
returned: [],
|
||||
userQuery: 'a<b=[]>',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'A<B=[!]>',
|
||||
elems: [
|
||||
{
|
||||
name: "a",
|
||||
name: "A",
|
||||
fullPath: ["a"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "a",
|
||||
@ -160,52 +158,47 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: 'A<B=[!]>',
|
||||
userQuery: 'A<B=[!]>',
|
||||
returned: [],
|
||||
userQuery: 'a<b=[!]>',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'A<B=C=>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'A<B=C=>',
|
||||
userQuery: 'A<B=C=>',
|
||||
returned: [],
|
||||
userQuery: 'a<b=c=>',
|
||||
error: "Cannot write `=` twice in a binding",
|
||||
},
|
||||
{
|
||||
query: 'A<B=>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'A<B=>',
|
||||
userQuery: 'A<B=>',
|
||||
returned: [],
|
||||
userQuery: 'a<b=>',
|
||||
error: "Unexpected `>` after `=`",
|
||||
},
|
||||
{
|
||||
query: 'B=C',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'B=C',
|
||||
userQuery: 'B=C',
|
||||
returned: [],
|
||||
userQuery: 'b=c',
|
||||
error: "Type parameter `=` must be within generics list",
|
||||
},
|
||||
{
|
||||
query: '[B=C]',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '[B=C]',
|
||||
userQuery: '[B=C]',
|
||||
returned: [],
|
||||
userQuery: '[b=c]',
|
||||
error: "Type parameter `=` cannot be within slice `[]`",
|
||||
},
|
||||
{
|
||||
query: 'A<B<X>=C>',
|
||||
elems: [
|
||||
{
|
||||
name: "a",
|
||||
name: "A",
|
||||
fullPath: ["a"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "a",
|
||||
@ -215,7 +208,7 @@ const PARSED = [
|
||||
'b',
|
||||
[
|
||||
{
|
||||
name: "c",
|
||||
name: "C",
|
||||
fullPath: ["c"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "c",
|
||||
@ -223,7 +216,7 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
},
|
||||
{
|
||||
name: "x",
|
||||
name: "X",
|
||||
fullPath: ["x"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "x",
|
||||
@ -237,9 +230,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: 'A<B<X>=C>',
|
||||
userQuery: 'A<B<X>=C>',
|
||||
returned: [],
|
||||
userQuery: 'a<b<x>=c>',
|
||||
error: null,
|
||||
},
|
||||
];
|
||||
|
@ -3,450 +3,400 @@ const PARSED = [
|
||||
query: '<P>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "<P>",
|
||||
userQuery: "<P>",
|
||||
returned: [],
|
||||
userQuery: "<p>",
|
||||
error: "Found generics without a path",
|
||||
},
|
||||
{
|
||||
query: '-> <P>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "-> <P>",
|
||||
userQuery: "-> <P>",
|
||||
returned: [],
|
||||
userQuery: "-> <p>",
|
||||
error: "Found generics without a path",
|
||||
},
|
||||
{
|
||||
query: '-> *',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "-> *",
|
||||
returned: [],
|
||||
userQuery: "-> *",
|
||||
returned: [],
|
||||
error: "Unexpected `*` after ` ` (not a valid identifier)",
|
||||
},
|
||||
{
|
||||
query: 'a<"P">',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a<\"P\">",
|
||||
userQuery: "a<\"P\">",
|
||||
returned: [],
|
||||
userQuery: "a<\"p\">",
|
||||
error: "Unexpected `\"` in generics",
|
||||
},
|
||||
{
|
||||
query: '"P" "P"',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "\"P\" \"P\"",
|
||||
userQuery: "\"P\" \"P\"",
|
||||
returned: [],
|
||||
userQuery: "\"p\" \"p\"",
|
||||
error: "Cannot have more than one element if you use quotes",
|
||||
},
|
||||
{
|
||||
query: '"P","P"',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "\"P\",\"P\"",
|
||||
userQuery: "\"P\",\"P\"",
|
||||
returned: [],
|
||||
userQuery: "\"p\",\"p\"",
|
||||
error: "Cannot have more than one literal search element",
|
||||
},
|
||||
{
|
||||
query: "P,\"P\"",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "P,\"P\"",
|
||||
userQuery: "P,\"P\"",
|
||||
returned: [],
|
||||
userQuery: "p,\"p\"",
|
||||
error: "Cannot use literal search when there is more than one element",
|
||||
},
|
||||
{
|
||||
query: '"p" p',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "\"p\" p",
|
||||
returned: [],
|
||||
userQuery: "\"p\" p",
|
||||
returned: [],
|
||||
error: "Cannot have more than one element if you use quotes",
|
||||
},
|
||||
{
|
||||
query: '"p",p',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "\"p\",p",
|
||||
returned: [],
|
||||
userQuery: "\"p\",p",
|
||||
returned: [],
|
||||
error: "Cannot have more than one element if you use quotes",
|
||||
},
|
||||
{
|
||||
query: '"const": p',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "\"const\": p",
|
||||
returned: [],
|
||||
userQuery: "\"const\": p",
|
||||
returned: [],
|
||||
error: "Cannot use quotes on type filter",
|
||||
},
|
||||
{
|
||||
query: "a<:a>",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a<:a>",
|
||||
returned: [],
|
||||
userQuery: "a<:a>",
|
||||
returned: [],
|
||||
error: "Expected type filter before `:`",
|
||||
},
|
||||
{
|
||||
query: "a<::a>",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a<::a>",
|
||||
returned: [],
|
||||
userQuery: "a<::a>",
|
||||
returned: [],
|
||||
error: "Unexpected `::`: paths cannot start with `::`",
|
||||
},
|
||||
{
|
||||
query: "(p -> p",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "(p -> p",
|
||||
returned: [],
|
||||
userQuery: "(p -> p",
|
||||
returned: [],
|
||||
error: "Unclosed `(`",
|
||||
},
|
||||
{
|
||||
query: "::a::b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "::a::b",
|
||||
returned: [],
|
||||
userQuery: "::a::b",
|
||||
returned: [],
|
||||
error: "Paths cannot start with `::`",
|
||||
},
|
||||
{
|
||||
query: " ::a::b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "::a::b",
|
||||
returned: [],
|
||||
userQuery: "::a::b",
|
||||
returned: [],
|
||||
error: "Paths cannot start with `::`",
|
||||
},
|
||||
{
|
||||
query: "a::::b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a::::b",
|
||||
returned: [],
|
||||
userQuery: "a::::b",
|
||||
returned: [],
|
||||
error: "Unexpected `::::`",
|
||||
},
|
||||
{
|
||||
query: "a:: ::b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a:: ::b",
|
||||
returned: [],
|
||||
userQuery: "a:: ::b",
|
||||
returned: [],
|
||||
error: "Unexpected `:: ::`",
|
||||
},
|
||||
{
|
||||
query: "a::\t::b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a:: ::b",
|
||||
returned: [],
|
||||
userQuery: "a:: ::b",
|
||||
returned: [],
|
||||
error: "Unexpected `:: ::`",
|
||||
},
|
||||
{
|
||||
query: "a::b::",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a::b::",
|
||||
returned: [],
|
||||
userQuery: "a::b::",
|
||||
returned: [],
|
||||
error: "Paths cannot end with `::`",
|
||||
},
|
||||
{
|
||||
query: ":a",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: ":a",
|
||||
returned: [],
|
||||
userQuery: ":a",
|
||||
returned: [],
|
||||
error: "Expected type filter before `:`",
|
||||
},
|
||||
{
|
||||
query: "a,b:",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a,b:",
|
||||
returned: [],
|
||||
userQuery: "a,b:",
|
||||
returned: [],
|
||||
error: "Unexpected `:` (expected path after type filter `b:`)",
|
||||
},
|
||||
{
|
||||
query: "a (b:",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a (b:",
|
||||
returned: [],
|
||||
userQuery: "a (b:",
|
||||
returned: [],
|
||||
error: "Unclosed `(`",
|
||||
},
|
||||
{
|
||||
query: "_:",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "_:",
|
||||
returned: [],
|
||||
userQuery: "_:",
|
||||
returned: [],
|
||||
error: "Unexpected `_` (not a valid identifier)",
|
||||
},
|
||||
{
|
||||
query: "ab:",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "ab:",
|
||||
returned: [],
|
||||
userQuery: "ab:",
|
||||
returned: [],
|
||||
error: "Unexpected `:` (expected path after type filter `ab:`)",
|
||||
},
|
||||
{
|
||||
query: "a:b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a:b",
|
||||
returned: [],
|
||||
userQuery: "a:b",
|
||||
returned: [],
|
||||
error: "Unknown type filter `a`",
|
||||
},
|
||||
{
|
||||
query: "a-bb",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a-bb",
|
||||
returned: [],
|
||||
userQuery: "a-bb",
|
||||
returned: [],
|
||||
error: "Unexpected `-` (did you mean `->`?)",
|
||||
},
|
||||
{
|
||||
query: "a>bb",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a>bb",
|
||||
returned: [],
|
||||
userQuery: "a>bb",
|
||||
returned: [],
|
||||
error: "Unexpected `>` (did you mean `->`?)",
|
||||
},
|
||||
{
|
||||
query: "ab'",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "ab'",
|
||||
returned: [],
|
||||
userQuery: "ab'",
|
||||
returned: [],
|
||||
error: "Unexpected `'` after `b` (not a valid identifier)",
|
||||
},
|
||||
{
|
||||
query: '"p" <a>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '"p" <a>',
|
||||
returned: [],
|
||||
userQuery: '"p" <a>',
|
||||
returned: [],
|
||||
error: "Cannot have more than one element if you use quotes",
|
||||
},
|
||||
{
|
||||
query: '"p",<a>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '"p",<a>',
|
||||
returned: [],
|
||||
userQuery: '"p",<a>',
|
||||
returned: [],
|
||||
error: "Found generics without a path",
|
||||
},
|
||||
{
|
||||
query: '"p" a<a>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '"p" a<a>',
|
||||
returned: [],
|
||||
userQuery: '"p" a<a>',
|
||||
returned: [],
|
||||
error: "Cannot have more than one element if you use quotes",
|
||||
},
|
||||
{
|
||||
query: '"p",a<a>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '"p",a<a>',
|
||||
returned: [],
|
||||
userQuery: '"p",a<a>',
|
||||
returned: [],
|
||||
error: "Cannot have more than one element if you use quotes",
|
||||
},
|
||||
{
|
||||
query: "a,<",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'a,<',
|
||||
returned: [],
|
||||
userQuery: 'a,<',
|
||||
returned: [],
|
||||
error: 'Found generics without a path',
|
||||
},
|
||||
{
|
||||
query: "aaaaa<>b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'aaaaa<>b',
|
||||
returned: [],
|
||||
userQuery: 'aaaaa<>b',
|
||||
returned: [],
|
||||
error: 'Expected `,`, `:` or `->` after `>`, found `b`',
|
||||
},
|
||||
{
|
||||
query: "fn:aaaaa<>b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'fn:aaaaa<>b',
|
||||
returned: [],
|
||||
userQuery: 'fn:aaaaa<>b',
|
||||
returned: [],
|
||||
error: 'Expected `,`, `:` or `->` after `>`, found `b`',
|
||||
},
|
||||
{
|
||||
query: "->a<>b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '->a<>b',
|
||||
returned: [],
|
||||
userQuery: '->a<>b',
|
||||
returned: [],
|
||||
error: 'Expected `,` or `=` after `>`, found `b`',
|
||||
},
|
||||
{
|
||||
query: "a<->",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'a<->',
|
||||
returned: [],
|
||||
userQuery: 'a<->',
|
||||
returned: [],
|
||||
error: 'Unclosed `<`',
|
||||
},
|
||||
{
|
||||
query: "a<a>:",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a<a>:",
|
||||
returned: [],
|
||||
userQuery: "a<a>:",
|
||||
returned: [],
|
||||
error: 'Unexpected `<` in type filter (before `:`)',
|
||||
},
|
||||
{
|
||||
query: "a<>:",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a<>:",
|
||||
returned: [],
|
||||
userQuery: "a<>:",
|
||||
returned: [],
|
||||
error: 'Unexpected `<` in type filter (before `:`)',
|
||||
},
|
||||
{
|
||||
query: "a,:",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a,:",
|
||||
returned: [],
|
||||
userQuery: "a,:",
|
||||
returned: [],
|
||||
error: 'Expected type filter before `:`',
|
||||
},
|
||||
{
|
||||
query: "a!:",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a!:",
|
||||
returned: [],
|
||||
userQuery: "a!:",
|
||||
returned: [],
|
||||
error: 'Unexpected `!` in type filter (before `:`)',
|
||||
},
|
||||
{
|
||||
query: " a<> :",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a<> :",
|
||||
returned: [],
|
||||
userQuery: "a<> :",
|
||||
returned: [],
|
||||
error: 'Expected `,`, `:` or `->` after `>`, found `:`',
|
||||
},
|
||||
{
|
||||
query: "mod : :",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "mod : :",
|
||||
returned: [],
|
||||
userQuery: "mod : :",
|
||||
returned: [],
|
||||
error: 'Unexpected `:` (expected path after type filter `mod:`)',
|
||||
},
|
||||
{
|
||||
query: "mod: :",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "mod: :",
|
||||
returned: [],
|
||||
userQuery: "mod: :",
|
||||
returned: [],
|
||||
error: 'Unexpected `:` (expected path after type filter `mod:`)',
|
||||
},
|
||||
{
|
||||
query: "a!a",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a!a",
|
||||
returned: [],
|
||||
userQuery: "a!a",
|
||||
returned: [],
|
||||
error: 'Unexpected `!`: it can only be at the end of an ident',
|
||||
},
|
||||
{
|
||||
query: "a!!",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a!!",
|
||||
returned: [],
|
||||
userQuery: "a!!",
|
||||
returned: [],
|
||||
error: 'Cannot have more than one `!` in an ident',
|
||||
},
|
||||
{
|
||||
query: "mod:a!",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "mod:a!",
|
||||
returned: [],
|
||||
userQuery: "mod:a!",
|
||||
returned: [],
|
||||
error: 'Invalid search type: macro `!` and `mod` both specified',
|
||||
},
|
||||
{
|
||||
query: "mod:!",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "mod:!",
|
||||
returned: [],
|
||||
userQuery: "mod:!",
|
||||
returned: [],
|
||||
error: 'Invalid search type: primitive never type `!` and `mod` both specified',
|
||||
},
|
||||
{
|
||||
query: "a!::a",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a!::a",
|
||||
returned: [],
|
||||
userQuery: "a!::a",
|
||||
returned: [],
|
||||
error: 'Cannot have associated items in macros',
|
||||
},
|
||||
{
|
||||
query: "a<",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a<",
|
||||
returned: [],
|
||||
userQuery: "a<",
|
||||
returned: [],
|
||||
error: "Unclosed `<`",
|
||||
},
|
||||
{
|
||||
@ -479,9 +429,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "p<x> , y",
|
||||
returned: [],
|
||||
userQuery: "p<x> , y",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -514,9 +463,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "p<x , y>",
|
||||
returned: [],
|
||||
userQuery: "p<x , y>",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -548,9 +496,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 3,
|
||||
original: "p ,x , y",
|
||||
returned: [],
|
||||
userQuery: "p ,x , y",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
];
|
||||
|
@ -10,9 +10,8 @@ const PARSED = [
|
||||
typeFilter: 7,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "fn:foo",
|
||||
returned: [],
|
||||
userQuery: "fn:foo",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -26,18 +25,16 @@ const PARSED = [
|
||||
typeFilter: 6,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "enum : foo",
|
||||
returned: [],
|
||||
userQuery: "enum : foo",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'macro<f>:foo',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "macro<f>:foo",
|
||||
returned: [],
|
||||
userQuery: "macro<f>:foo",
|
||||
returned: [],
|
||||
error: "Unexpected `<` in type filter (before `:`)",
|
||||
},
|
||||
{
|
||||
@ -51,9 +48,8 @@ const PARSED = [
|
||||
typeFilter: 16,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "macro!",
|
||||
returned: [],
|
||||
userQuery: "macro!",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -67,9 +63,8 @@ const PARSED = [
|
||||
typeFilter: 16,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "macro:mac!",
|
||||
returned: [],
|
||||
userQuery: "macro:mac!",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -83,16 +78,15 @@ const PARSED = [
|
||||
typeFilter: 16,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "a::mac!",
|
||||
returned: [],
|
||||
userQuery: "a::mac!",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: '-> fn:foo',
|
||||
elems: [],
|
||||
foundElems: 1,
|
||||
original: "-> fn:foo",
|
||||
userQuery: "-> fn:foo",
|
||||
returned: [{
|
||||
name: "foo",
|
||||
fullPath: ["foo"],
|
||||
@ -101,14 +95,13 @@ const PARSED = [
|
||||
generics: [],
|
||||
typeFilter: 7,
|
||||
}],
|
||||
userQuery: "-> fn:foo",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: '-> fn:foo<fn:bar>',
|
||||
elems: [],
|
||||
foundElems: 1,
|
||||
original: "-> fn:foo<fn:bar>",
|
||||
userQuery: "-> fn:foo<fn:bar>",
|
||||
returned: [{
|
||||
name: "foo",
|
||||
fullPath: ["foo"],
|
||||
@ -126,14 +119,13 @@ const PARSED = [
|
||||
],
|
||||
typeFilter: 7,
|
||||
}],
|
||||
userQuery: "-> fn:foo<fn:bar>",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: '-> fn:foo<fn:bar, enum : baz::fuzz>',
|
||||
elems: [],
|
||||
foundElems: 1,
|
||||
original: "-> fn:foo<fn:bar, enum : baz::fuzz>",
|
||||
userQuery: "-> fn:foo<fn:bar, enum : baz::fuzz>",
|
||||
returned: [{
|
||||
name: "foo",
|
||||
fullPath: ["foo"],
|
||||
@ -159,7 +151,6 @@ const PARSED = [
|
||||
],
|
||||
typeFilter: 7,
|
||||
}],
|
||||
userQuery: "-> fn:foo<fn:bar, enum : baz::fuzz>",
|
||||
error: null,
|
||||
},
|
||||
];
|
||||
|
@ -3,9 +3,8 @@ const PARSED = [
|
||||
query: 'A<B<C<D>, E>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'A<B<C<D>, E>',
|
||||
userQuery: 'A<B<C<D>, E>',
|
||||
returned: [],
|
||||
userQuery: 'a<b<c<d>, e>',
|
||||
error: 'Unclosed `<`',
|
||||
},
|
||||
{
|
||||
@ -29,9 +28,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "p<>,u8",
|
||||
returned: [],
|
||||
userQuery: "p<>,u8",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -55,9 +53,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: '"p"<a>',
|
||||
returned: [],
|
||||
userQuery: '"p"<a>',
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -89,9 +86,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: 'p<u<x>>',
|
||||
returned: [],
|
||||
userQuery: 'p<u<x>>',
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -130,9 +126,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: 'p<u<x>, r>',
|
||||
returned: [],
|
||||
userQuery: 'p<u<x>, r>',
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -171,9 +166,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: 'p<u<x, r>>',
|
||||
returned: [],
|
||||
userQuery: 'p<u<x, r>>',
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
];
|
||||
|
@ -12,13 +12,13 @@ const PARSED = [
|
||||
[
|
||||
"output",
|
||||
[{
|
||||
name: "f",
|
||||
name: "F",
|
||||
fullPath: ["f"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "f",
|
||||
generics: [
|
||||
{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
@ -32,9 +32,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "(-> F<P>)",
|
||||
userQuery: "(-> F<P>)",
|
||||
returned: [],
|
||||
userQuery: "(-> f<p>)",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -49,7 +48,7 @@ const PARSED = [
|
||||
[
|
||||
"output",
|
||||
[{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
@ -61,9 +60,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "(-> P)",
|
||||
userQuery: "(-> P)",
|
||||
returned: [],
|
||||
userQuery: "(-> p)",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -90,9 +88,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "(->,a)",
|
||||
returned: [],
|
||||
userQuery: "(->,a)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -103,13 +100,13 @@ const PARSED = [
|
||||
pathWithoutLast: [],
|
||||
pathLast: "->",
|
||||
generics: [{
|
||||
name: "f",
|
||||
name: "F",
|
||||
fullPath: ["f"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "f",
|
||||
generics: [
|
||||
{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
@ -127,9 +124,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "(F<P> ->)",
|
||||
userQuery: "(F<P> ->)",
|
||||
returned: [],
|
||||
userQuery: "(f<p> ->)",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -140,7 +136,7 @@ const PARSED = [
|
||||
pathWithoutLast: [],
|
||||
pathLast: "->",
|
||||
generics: [{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
@ -156,9 +152,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "(P ->)",
|
||||
userQuery: "(P ->)",
|
||||
returned: [],
|
||||
userQuery: "(p ->)",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -185,9 +180,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "(,a->)",
|
||||
returned: [],
|
||||
userQuery: "(,a->)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -221,9 +215,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "(aaaaa->a)",
|
||||
returned: [],
|
||||
userQuery: "(aaaaa->a)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -267,9 +260,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "(aaaaa, b -> a)",
|
||||
returned: [],
|
||||
userQuery: "(aaaaa, b -> a)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -313,9 +305,8 @@ const PARSED = [
|
||||
typeFilter: 1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "primitive:(aaaaa, b -> a)",
|
||||
returned: [],
|
||||
userQuery: "primitive:(aaaaa, b -> a)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -369,16 +360,15 @@ const PARSED = [
|
||||
}
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "x, trait:(aaaaa, b -> a)",
|
||||
returned: [],
|
||||
userQuery: "x, trait:(aaaaa, b -> a)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
// Rust-style HOF
|
||||
{
|
||||
query: "Fn () -> F<P>",
|
||||
elems: [{
|
||||
name: "fn",
|
||||
name: "Fn",
|
||||
fullPath: ["fn"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "fn",
|
||||
@ -387,13 +377,13 @@ const PARSED = [
|
||||
[
|
||||
"output",
|
||||
[{
|
||||
name: "f",
|
||||
name: "F",
|
||||
fullPath: ["f"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "f",
|
||||
generics: [
|
||||
{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
@ -407,15 +397,14 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "Fn () -> F<P>",
|
||||
userQuery: "Fn () -> F<P>",
|
||||
returned: [],
|
||||
userQuery: "fn () -> f<p>",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "FnMut() -> P",
|
||||
elems: [{
|
||||
name: "fnmut",
|
||||
name: "FnMut",
|
||||
fullPath: ["fnmut"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "fnmut",
|
||||
@ -424,7 +413,7 @@ const PARSED = [
|
||||
[
|
||||
"output",
|
||||
[{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
@ -436,15 +425,14 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "FnMut() -> P",
|
||||
userQuery: "FnMut() -> P",
|
||||
returned: [],
|
||||
userQuery: "fnmut() -> p",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "(FnMut() -> P)",
|
||||
elems: [{
|
||||
name: "fnmut",
|
||||
name: "FnMut",
|
||||
fullPath: ["fnmut"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "fnmut",
|
||||
@ -453,7 +441,7 @@ const PARSED = [
|
||||
[
|
||||
"output",
|
||||
[{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
@ -465,26 +453,25 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "(FnMut() -> P)",
|
||||
userQuery: "(FnMut() -> P)",
|
||||
returned: [],
|
||||
userQuery: "(fnmut() -> p)",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "Fn(F<P>)",
|
||||
elems: [{
|
||||
name: "fn",
|
||||
name: "Fn",
|
||||
fullPath: ["fn"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "fn",
|
||||
generics: [{
|
||||
name: "f",
|
||||
name: "F",
|
||||
fullPath: ["f"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "f",
|
||||
generics: [
|
||||
{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
@ -502,9 +489,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "Fn(F<P>)",
|
||||
userQuery: "Fn(F<P>)",
|
||||
returned: [],
|
||||
userQuery: "fn(f<p>)",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -548,9 +534,8 @@ const PARSED = [
|
||||
typeFilter: 1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "primitive:fnonce(aaaaa, b) -> a",
|
||||
returned: [],
|
||||
userQuery: "primitive:fnonce(aaaaa, b) -> a",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -594,9 +579,8 @@ const PARSED = [
|
||||
typeFilter: 1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "primitive:fnonce(aaaaa, keyword:b) -> trait:a",
|
||||
returned: [],
|
||||
userQuery: "primitive:fnonce(aaaaa, keyword:b) -> trait:a",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -665,9 +649,8 @@ const PARSED = [
|
||||
}
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "x, trait:fn(aaaaa, b -> a)",
|
||||
returned: [],
|
||||
userQuery: "x, trait:fn(aaaaa, b -> a)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -704,9 +687,8 @@ const PARSED = [
|
||||
}
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "a,b(c)",
|
||||
returned: [],
|
||||
userQuery: "a,b(c)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
];
|
||||
|
@ -2,7 +2,7 @@ const PARSED = [
|
||||
{
|
||||
query: "R<!>",
|
||||
elems: [{
|
||||
name: "r",
|
||||
name: "R",
|
||||
fullPath: ["r"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "r",
|
||||
@ -19,9 +19,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "R<!>",
|
||||
userQuery: "R<!>",
|
||||
returned: [],
|
||||
userQuery: "r<!>",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -35,9 +34,8 @@ const PARSED = [
|
||||
typeFilter: 1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "!",
|
||||
returned: [],
|
||||
userQuery: "!",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -51,27 +49,24 @@ const PARSED = [
|
||||
typeFilter: 16,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "a!",
|
||||
returned: [],
|
||||
userQuery: "a!",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "a!::b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a!::b",
|
||||
returned: [],
|
||||
userQuery: "a!::b",
|
||||
returned: [],
|
||||
error: "Cannot have associated items in macros",
|
||||
},
|
||||
{
|
||||
query: "!<T>",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "!<T>",
|
||||
userQuery: "!<T>",
|
||||
returned: [],
|
||||
userQuery: "!<t>",
|
||||
error: "Never type `!` does not accept generic parameters",
|
||||
},
|
||||
{
|
||||
@ -85,36 +80,32 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "!::b",
|
||||
returned: [],
|
||||
userQuery: "!::b",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "b::!",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "b::!",
|
||||
returned: [],
|
||||
userQuery: "b::!",
|
||||
returned: [],
|
||||
error: "Never type `!` is not associated item",
|
||||
},
|
||||
{
|
||||
query: "!::!",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "!::!",
|
||||
returned: [],
|
||||
userQuery: "!::!",
|
||||
returned: [],
|
||||
error: "Never type `!` is not associated item",
|
||||
},
|
||||
{
|
||||
query: "b::!::c",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "b::!::c",
|
||||
returned: [],
|
||||
userQuery: "b::!::c",
|
||||
returned: [],
|
||||
error: "Never type `!` is not associated item",
|
||||
},
|
||||
{
|
||||
@ -126,7 +117,7 @@ const PARSED = [
|
||||
pathLast: "b",
|
||||
generics: [
|
||||
{
|
||||
name: "t",
|
||||
name: "T",
|
||||
fullPath: ["t"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "t",
|
||||
@ -137,18 +128,16 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "!::b<T>",
|
||||
userQuery: "!::b<T>",
|
||||
returned: [],
|
||||
userQuery: "!::b<t>",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "a!::b!",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a!::b!",
|
||||
returned: [],
|
||||
userQuery: "a!::b!",
|
||||
returned: [],
|
||||
error: "Cannot have associated items in macros",
|
||||
},
|
||||
];
|
||||
|
@ -2,13 +2,13 @@ const PARSED = [
|
||||
{
|
||||
query: 'R<P>',
|
||||
elems: [{
|
||||
name: "r",
|
||||
name: "R",
|
||||
fullPath: ["r"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "r",
|
||||
generics: [
|
||||
{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
@ -18,9 +18,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "R<P>",
|
||||
userQuery: "R<P>",
|
||||
returned: [],
|
||||
userQuery: "r<p>",
|
||||
error: null,
|
||||
}
|
||||
];
|
||||
|
@ -2,7 +2,7 @@ const PARSED = [
|
||||
{
|
||||
query: 'A::B',
|
||||
elems: [{
|
||||
name: "a::b",
|
||||
name: "A::B",
|
||||
fullPath: ["a", "b"],
|
||||
pathWithoutLast: ["a"],
|
||||
pathLast: "b",
|
||||
@ -10,9 +10,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "A::B",
|
||||
userQuery: "A::B",
|
||||
returned: [],
|
||||
userQuery: "a::b",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -26,9 +25,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: 'a:: a',
|
||||
returned: [],
|
||||
userQuery: 'a:: a',
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -42,9 +40,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: 'a ::a',
|
||||
returned: [],
|
||||
userQuery: 'a ::a',
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -58,16 +55,15 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: 'a :: a',
|
||||
returned: [],
|
||||
userQuery: 'a :: a',
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'A::B,C',
|
||||
elems: [
|
||||
{
|
||||
name: "a::b",
|
||||
name: "A::B",
|
||||
fullPath: ["a", "b"],
|
||||
pathWithoutLast: ["a"],
|
||||
pathLast: "b",
|
||||
@ -75,7 +71,7 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
},
|
||||
{
|
||||
name: "c",
|
||||
name: "C",
|
||||
fullPath: ["c"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "c",
|
||||
@ -84,16 +80,15 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: 'A::B,C',
|
||||
userQuery: 'A::B,C',
|
||||
returned: [],
|
||||
userQuery: 'a::b,c',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'A::B<f>,C',
|
||||
elems: [
|
||||
{
|
||||
name: "a::b",
|
||||
name: "A::B",
|
||||
fullPath: ["a", "b"],
|
||||
pathWithoutLast: ["a"],
|
||||
pathLast: "b",
|
||||
@ -109,7 +104,7 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
},
|
||||
{
|
||||
name: "c",
|
||||
name: "C",
|
||||
fullPath: ["c"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "c",
|
||||
@ -118,9 +113,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: 'A::B<f>,C',
|
||||
userQuery: 'A::B<f>,C',
|
||||
returned: [],
|
||||
userQuery: 'a::b<f>,c',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -134,9 +128,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "mod::a",
|
||||
returned: [],
|
||||
userQuery: "mod::a",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
];
|
||||
|
@ -3,7 +3,7 @@ const PARSED = [
|
||||
query: '-> "p"',
|
||||
elems: [],
|
||||
foundElems: 1,
|
||||
original: '-> "p"',
|
||||
userQuery: '-> "p"',
|
||||
returned: [{
|
||||
name: "p",
|
||||
fullPath: ["p"],
|
||||
@ -12,7 +12,6 @@ const PARSED = [
|
||||
generics: [],
|
||||
typeFilter: -1,
|
||||
}],
|
||||
userQuery: '-> "p"',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -26,54 +25,48 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: '"p",',
|
||||
returned: [],
|
||||
userQuery: '"p",',
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: '"p" -> a',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '"p" -> a',
|
||||
returned: [],
|
||||
userQuery: '"p" -> a',
|
||||
returned: [],
|
||||
error: "Cannot have more than one element if you use quotes",
|
||||
},
|
||||
{
|
||||
query: '"a" -> "p"',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '"a" -> "p"',
|
||||
returned: [],
|
||||
userQuery: '"a" -> "p"',
|
||||
returned: [],
|
||||
error: "Cannot have more than one literal search element",
|
||||
},
|
||||
{
|
||||
query: '->"-"',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '->"-"',
|
||||
returned: [],
|
||||
userQuery: '->"-"',
|
||||
returned: [],
|
||||
error: 'Unexpected `-` in a string element',
|
||||
},
|
||||
{
|
||||
query: '"a',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '"a',
|
||||
returned: [],
|
||||
userQuery: '"a',
|
||||
returned: [],
|
||||
error: 'Unclosed `"`',
|
||||
},
|
||||
{
|
||||
query: '""',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '""',
|
||||
returned: [],
|
||||
userQuery: '""',
|
||||
returned: [],
|
||||
error: 'Cannot have empty string element',
|
||||
},
|
||||
];
|
||||
|
@ -3,18 +3,16 @@ const PARSED = [
|
||||
query: '&[',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '&[',
|
||||
returned: [],
|
||||
userQuery: '&[',
|
||||
returned: [],
|
||||
error: 'Unclosed `[`',
|
||||
},
|
||||
{
|
||||
query: '[&',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '[&',
|
||||
returned: [],
|
||||
userQuery: '[&',
|
||||
returned: [],
|
||||
error: 'Unclosed `[`',
|
||||
},
|
||||
{
|
||||
@ -39,7 +37,7 @@ const PARSED = [
|
||||
pathLast: "reference",
|
||||
generics: [
|
||||
{
|
||||
name: "d",
|
||||
name: "D",
|
||||
fullPath: ["d"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "d",
|
||||
@ -65,9 +63,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: '&&&D, []',
|
||||
userQuery: '&&&D, []',
|
||||
returned: [],
|
||||
userQuery: '&&&d, []',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -98,7 +95,7 @@ const PARSED = [
|
||||
pathLast: "[]",
|
||||
generics: [
|
||||
{
|
||||
name: "d",
|
||||
name: "D",
|
||||
fullPath: ["d"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "d",
|
||||
@ -119,9 +116,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: '&&&[D]',
|
||||
userQuery: '&&&[D]',
|
||||
returned: [],
|
||||
userQuery: '&&&[d]',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -137,9 +133,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: '&',
|
||||
returned: [],
|
||||
userQuery: '&',
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -164,9 +159,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: '&mut',
|
||||
returned: [],
|
||||
userQuery: '&mut',
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -190,9 +184,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "&,u8",
|
||||
returned: [],
|
||||
userQuery: "&,u8",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -225,9 +218,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "&mut,u8",
|
||||
returned: [],
|
||||
userQuery: "&mut,u8",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -252,9 +244,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "&u8",
|
||||
returned: [],
|
||||
userQuery: "&u8",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -288,9 +279,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "&u8<u8>",
|
||||
returned: [],
|
||||
userQuery: "&u8<u8>",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -324,9 +314,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "u8<&u8>",
|
||||
returned: [],
|
||||
userQuery: "u8<&u8>",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -368,9 +357,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "u8<&u8, u8>",
|
||||
returned: [],
|
||||
userQuery: "u8<&u8, u8>",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -404,9 +392,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "u8<&u8>",
|
||||
returned: [],
|
||||
userQuery: "u8<&u8>",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -456,9 +443,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "u8<&mut u8, u8>",
|
||||
returned: [],
|
||||
userQuery: "u8<&mut u8, u8>",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -483,18 +469,16 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "primitive:&u8",
|
||||
returned: [],
|
||||
userQuery: "primitive:&u8",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'macro:&u8',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "macro:&u8",
|
||||
returned: [],
|
||||
userQuery: "macro:&u8",
|
||||
returned: [],
|
||||
error: "Invalid search type: primitive `&` and `macro` both specified",
|
||||
},
|
||||
{
|
||||
@ -519,9 +503,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "¯o:u8",
|
||||
returned: [],
|
||||
userQuery: "¯o:u8",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
];
|
||||
|
@ -3,15 +3,15 @@ const PARSED = [
|
||||
query: "-> F<P>",
|
||||
elems: [],
|
||||
foundElems: 1,
|
||||
original: "-> F<P>",
|
||||
userQuery: "-> F<P>",
|
||||
returned: [{
|
||||
name: "f",
|
||||
name: "F",
|
||||
fullPath: ["f"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "f",
|
||||
generics: [
|
||||
{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
@ -20,30 +20,28 @@ const PARSED = [
|
||||
],
|
||||
typeFilter: -1,
|
||||
}],
|
||||
userQuery: "-> f<p>",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "-> P",
|
||||
elems: [],
|
||||
foundElems: 1,
|
||||
original: "-> P",
|
||||
userQuery: "-> P",
|
||||
returned: [{
|
||||
name: "p",
|
||||
name: "P",
|
||||
fullPath: ["p"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "p",
|
||||
generics: [],
|
||||
typeFilter: -1,
|
||||
}],
|
||||
userQuery: "-> p",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "->,a",
|
||||
elems: [],
|
||||
foundElems: 1,
|
||||
original: "->,a",
|
||||
userQuery: "->,a",
|
||||
returned: [{
|
||||
name: "a",
|
||||
fullPath: ["a"],
|
||||
@ -52,7 +50,6 @@ const PARSED = [
|
||||
generics: [],
|
||||
typeFilter: -1,
|
||||
}],
|
||||
userQuery: "->,a",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -66,7 +63,7 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 2,
|
||||
original: "aaaaa->a",
|
||||
userQuery: "aaaaa->a",
|
||||
returned: [{
|
||||
name: "a",
|
||||
fullPath: ["a"],
|
||||
@ -75,14 +72,13 @@ const PARSED = [
|
||||
generics: [],
|
||||
typeFilter: -1,
|
||||
}],
|
||||
userQuery: "aaaaa->a",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "-> !",
|
||||
elems: [],
|
||||
foundElems: 1,
|
||||
original: "-> !",
|
||||
userQuery: "-> !",
|
||||
returned: [{
|
||||
name: "never",
|
||||
fullPath: ["never"],
|
||||
@ -91,7 +87,6 @@ const PARSED = [
|
||||
generics: [],
|
||||
typeFilter: 1,
|
||||
}],
|
||||
userQuery: "-> !",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -105,9 +100,8 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "a->",
|
||||
returned: [],
|
||||
userQuery: "a->",
|
||||
returned: [],
|
||||
hasReturnArrow: true,
|
||||
error: null,
|
||||
},
|
||||
@ -122,9 +116,8 @@ const PARSED = [
|
||||
typeFilter: 1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "!->",
|
||||
returned: [],
|
||||
userQuery: "!->",
|
||||
returned: [],
|
||||
hasReturnArrow: true,
|
||||
error: null,
|
||||
},
|
||||
@ -139,9 +132,8 @@ const PARSED = [
|
||||
typeFilter: 1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "! ->",
|
||||
returned: [],
|
||||
userQuery: "! ->",
|
||||
returned: [],
|
||||
hasReturnArrow: true,
|
||||
error: null,
|
||||
},
|
||||
@ -156,9 +148,8 @@ const PARSED = [
|
||||
typeFilter: 1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "primitive:!->",
|
||||
returned: [],
|
||||
userQuery: "primitive:!->",
|
||||
returned: [],
|
||||
hasReturnArrow: true,
|
||||
error: null,
|
||||
},
|
||||
|
@ -14,9 +14,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "aaaaaa b",
|
||||
returned: [],
|
||||
userQuery: "aaaaaa b",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -40,9 +39,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "aaaaaa, b",
|
||||
returned: [],
|
||||
userQuery: "aaaaaa, b",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -58,9 +56,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "a b",
|
||||
returned: [],
|
||||
userQuery: "a b",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -84,9 +81,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "a,b",
|
||||
returned: [],
|
||||
userQuery: "a,b",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -102,9 +98,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "a b",
|
||||
returned: [],
|
||||
userQuery: "a b",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -128,9 +123,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "a<b c>",
|
||||
returned: [],
|
||||
userQuery: "a<b c>",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -161,9 +155,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "a<b,c>",
|
||||
returned: [],
|
||||
userQuery: "a<b,c>",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -187,9 +180,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "a<b c>",
|
||||
returned: [],
|
||||
userQuery: "a<b c>",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
];
|
||||
|
@ -3,9 +3,8 @@ const PARSED = [
|
||||
query: '[[[D, []]]',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '[[[D, []]]',
|
||||
userQuery: '[[[D, []]]',
|
||||
returned: [],
|
||||
userQuery: '[[[d, []]]',
|
||||
error: 'Unclosed `[`',
|
||||
},
|
||||
{
|
||||
@ -30,7 +29,7 @@ const PARSED = [
|
||||
pathLast: "[]",
|
||||
generics: [
|
||||
{
|
||||
name: "d",
|
||||
name: "D",
|
||||
fullPath: ["d"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "d",
|
||||
@ -56,9 +55,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: '[[[D, []]]]',
|
||||
userQuery: '[[[D, []]]]',
|
||||
returned: [],
|
||||
userQuery: '[[[d, []]]]',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -82,9 +80,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "[],u8",
|
||||
returned: [],
|
||||
userQuery: "[],u8",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -109,9 +106,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "[u8]",
|
||||
returned: [],
|
||||
userQuery: "[u8]",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -144,9 +140,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "[u8,u8]",
|
||||
returned: [],
|
||||
userQuery: "[u8,u8]",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -180,9 +175,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "[u8<u8>]",
|
||||
returned: [],
|
||||
userQuery: "[u8<u8>]",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -198,90 +192,80 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "[]",
|
||||
returned: [],
|
||||
userQuery: "[]",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: '[>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "[>",
|
||||
returned: [],
|
||||
userQuery: "[>",
|
||||
returned: [],
|
||||
error: "Unexpected `>` after `[`",
|
||||
},
|
||||
{
|
||||
query: '[<',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "[<",
|
||||
returned: [],
|
||||
userQuery: "[<",
|
||||
returned: [],
|
||||
error: "Found generics without a path",
|
||||
},
|
||||
{
|
||||
query: '[a>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "[a>",
|
||||
returned: [],
|
||||
userQuery: "[a>",
|
||||
returned: [],
|
||||
error: "Unexpected `>` after `[`",
|
||||
},
|
||||
{
|
||||
query: '[a<',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "[a<",
|
||||
returned: [],
|
||||
userQuery: "[a<",
|
||||
returned: [],
|
||||
error: "Unclosed `<`",
|
||||
},
|
||||
{
|
||||
query: '[a',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "[a",
|
||||
returned: [],
|
||||
userQuery: "[a",
|
||||
returned: [],
|
||||
error: "Unclosed `[`",
|
||||
},
|
||||
{
|
||||
query: '[',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "[",
|
||||
returned: [],
|
||||
userQuery: "[",
|
||||
returned: [],
|
||||
error: "Unclosed `[`",
|
||||
},
|
||||
{
|
||||
query: ']',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "]",
|
||||
returned: [],
|
||||
userQuery: "]",
|
||||
returned: [],
|
||||
error: "Unexpected `]`",
|
||||
},
|
||||
{
|
||||
query: '[a<b>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "[a<b>",
|
||||
returned: [],
|
||||
userQuery: "[a<b>",
|
||||
returned: [],
|
||||
error: "Unclosed `[`",
|
||||
},
|
||||
{
|
||||
query: 'a<b>]',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a<b>]",
|
||||
returned: [],
|
||||
userQuery: "a<b>]",
|
||||
returned: [],
|
||||
error: "Unexpected `]` after `>`",
|
||||
},
|
||||
{
|
||||
@ -306,18 +290,16 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "primitive:[u8]",
|
||||
returned: [],
|
||||
userQuery: "primitive:[u8]",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'macro:[u8]',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "macro:[u8]",
|
||||
returned: [],
|
||||
userQuery: "macro:[u8]",
|
||||
returned: [],
|
||||
error: "Invalid search type: primitive `[]` and `macro` both specified",
|
||||
},
|
||||
];
|
||||
|
@ -3,9 +3,8 @@ const PARSED = [
|
||||
query: '(((D, ()))',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: '(((D, ()))',
|
||||
userQuery: '(((D, ()))',
|
||||
returned: [],
|
||||
userQuery: '(((d, ()))',
|
||||
error: 'Unclosed `(`',
|
||||
},
|
||||
{
|
||||
@ -18,7 +17,7 @@ const PARSED = [
|
||||
pathLast: "()",
|
||||
generics: [
|
||||
{
|
||||
name: "d",
|
||||
name: "D",
|
||||
fullPath: ["d"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "d",
|
||||
@ -38,9 +37,8 @@ const PARSED = [
|
||||
}
|
||||
],
|
||||
foundElems: 1,
|
||||
original: '(((D, ())))',
|
||||
userQuery: '(((D, ())))',
|
||||
returned: [],
|
||||
userQuery: '(((d, ())))',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -64,9 +62,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "(),u8",
|
||||
returned: [],
|
||||
userQuery: "(),u8",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
// Parens act as grouping operators when:
|
||||
@ -88,9 +85,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "(u8)",
|
||||
returned: [],
|
||||
userQuery: "(u8)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -115,9 +111,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "(u8,)",
|
||||
returned: [],
|
||||
userQuery: "(u8,)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -142,9 +137,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "(,u8)",
|
||||
returned: [],
|
||||
userQuery: "(,u8)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -169,9 +163,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "primitive:(u8)",
|
||||
returned: [],
|
||||
userQuery: "primitive:(u8)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -187,9 +180,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "(primitive:u8)",
|
||||
returned: [],
|
||||
userQuery: "(primitive:u8)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -222,9 +214,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "(u8,u8)",
|
||||
returned: [],
|
||||
userQuery: "(u8,u8)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -249,9 +240,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "(u8<u8>)",
|
||||
returned: [],
|
||||
userQuery: "(u8<u8>)",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -267,99 +257,88 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "()",
|
||||
returned: [],
|
||||
userQuery: "()",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: '(>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "(>",
|
||||
returned: [],
|
||||
userQuery: "(>",
|
||||
returned: [],
|
||||
error: "Unexpected `>` after `(`",
|
||||
},
|
||||
{
|
||||
query: '(<',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "(<",
|
||||
returned: [],
|
||||
userQuery: "(<",
|
||||
returned: [],
|
||||
error: "Found generics without a path",
|
||||
},
|
||||
{
|
||||
query: '(a>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "(a>",
|
||||
returned: [],
|
||||
userQuery: "(a>",
|
||||
returned: [],
|
||||
error: "Unexpected `>` after `(`",
|
||||
},
|
||||
{
|
||||
query: '(a<',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "(a<",
|
||||
returned: [],
|
||||
userQuery: "(a<",
|
||||
returned: [],
|
||||
error: "Unclosed `<`",
|
||||
},
|
||||
{
|
||||
query: '(a',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "(a",
|
||||
returned: [],
|
||||
userQuery: "(a",
|
||||
returned: [],
|
||||
error: "Unclosed `(`",
|
||||
},
|
||||
{
|
||||
query: '(',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "(",
|
||||
returned: [],
|
||||
userQuery: "(",
|
||||
returned: [],
|
||||
error: "Unclosed `(`",
|
||||
},
|
||||
{
|
||||
query: ')',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: ")",
|
||||
returned: [],
|
||||
userQuery: ")",
|
||||
returned: [],
|
||||
error: "Unexpected `)`",
|
||||
},
|
||||
{
|
||||
query: '(a<b>',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "(a<b>",
|
||||
returned: [],
|
||||
userQuery: "(a<b>",
|
||||
returned: [],
|
||||
error: "Unclosed `(`",
|
||||
},
|
||||
{
|
||||
query: 'a<b>)',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a<b>)",
|
||||
returned: [],
|
||||
userQuery: "a<b>)",
|
||||
returned: [],
|
||||
error: "Unexpected `)` after `>`",
|
||||
},
|
||||
{
|
||||
query: 'macro:(u8)',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "macro:(u8)",
|
||||
returned: [],
|
||||
userQuery: "macro:(u8)",
|
||||
returned: [],
|
||||
error: "Invalid search type: primitive `()` and `macro` both specified",
|
||||
},
|
||||
];
|
||||
|
@ -15,9 +15,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "a b",
|
||||
returned: [],
|
||||
userQuery: "a b",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -32,9 +31,8 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 1,
|
||||
original: "a b",
|
||||
returned: [],
|
||||
userQuery: "a b",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -56,36 +54,32 @@ const PARSED = [
|
||||
},
|
||||
],
|
||||
foundElems: 2,
|
||||
original: "aaa,a",
|
||||
returned: [],
|
||||
userQuery: "aaa,a",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: ',,,,',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: ",,,,",
|
||||
returned: [],
|
||||
userQuery: ",,,,",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'mod :',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'mod :',
|
||||
returned: [],
|
||||
userQuery: 'mod :',
|
||||
returned: [],
|
||||
error: "Unexpected `:` (expected path after type filter `mod:`)",
|
||||
},
|
||||
{
|
||||
query: 'mod\t:',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'mod :',
|
||||
returned: [],
|
||||
userQuery: 'mod :',
|
||||
returned: [],
|
||||
error: "Unexpected `:` (expected path after type filter `mod:`)",
|
||||
},
|
||||
];
|
||||
|
@ -11,30 +11,29 @@ const PARSED = [
|
||||
}],
|
||||
returned: [],
|
||||
foundElems: 1,
|
||||
original: "中文",
|
||||
userQuery: "中文",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: '_0Mixed中英文',
|
||||
elems: [{
|
||||
name: "_0mixed中英文",
|
||||
name: "_0Mixed中英文",
|
||||
fullPath: ["_0mixed中英文"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "_0mixed中英文",
|
||||
normalizedPathLast: "0mixed中英文",
|
||||
generics: [],
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "_0Mixed中英文",
|
||||
userQuery: "_0Mixed中英文",
|
||||
returned: [],
|
||||
userQuery: "_0mixed中英文",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'my_crate::中文API',
|
||||
elems: [{
|
||||
name: "my_crate::中文api",
|
||||
name: "my_crate::中文API",
|
||||
fullPath: ["my_crate", "中文api"],
|
||||
pathWithoutLast: ["my_crate"],
|
||||
pathLast: "中文api",
|
||||
@ -42,26 +41,25 @@ const PARSED = [
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "my_crate::中文API",
|
||||
userQuery: "my_crate::中文API",
|
||||
returned: [],
|
||||
userQuery: "my_crate::中文api",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: '类型A,类型B<约束C>->返回类型<关联类型=路径::约束D>',
|
||||
elems: [{
|
||||
name: "类型a",
|
||||
name: "类型A",
|
||||
fullPath: ["类型a"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "类型a",
|
||||
generics: [],
|
||||
}, {
|
||||
name: "类型b",
|
||||
name: "类型B",
|
||||
fullPath: ["类型b"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "类型b",
|
||||
generics: [{
|
||||
name: "约束c",
|
||||
name: "约束C",
|
||||
fullPath: ["约束c"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "约束c",
|
||||
@ -71,15 +69,21 @@ const PARSED = [
|
||||
foundElems: 3,
|
||||
totalElems: 5,
|
||||
literalSearch: true,
|
||||
original: "类型A,类型B<约束C>->返回类型<关联类型=路径::约束D>",
|
||||
userQuery: "类型A,类型B<约束C>->返回类型<关联类型=路径::约束D>",
|
||||
returned: [{
|
||||
name: "返回类型",
|
||||
fullPath: ["返回类型"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "返回类型",
|
||||
generics: [],
|
||||
bindings: [["关联类型", [{
|
||||
name: "路径::约束D",
|
||||
fullPath: ["路径", "约束d"],
|
||||
pathWithoutLast: ["路径"],
|
||||
pathLast: "约束d",
|
||||
generics: [],
|
||||
}]]],
|
||||
}],
|
||||
userQuery: "类型a,类型b<约束c>->返回类型<关联类型=路径::约束d>",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
@ -93,18 +97,16 @@ const PARSED = [
|
||||
typeFilter: 16,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: "my_crate 中文宏!",
|
||||
returned: [],
|
||||
userQuery: "my_crate 中文宏!",
|
||||
returned: [],
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: '非法符号——',
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "非法符号——",
|
||||
returned: [],
|
||||
userQuery: "非法符号——",
|
||||
returned: [],
|
||||
error: "Unexpected `—` after `号` (not a valid identifier)",
|
||||
}
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user