const PARSED = [ | |
{ | |
query: '(((D, ()))', | |
elems: [], | |
foundElems: 0, | |
original: '(((D, ()))', | |
returned: [], | |
userQuery: '(((d, ()))', | |
error: 'Unclosed `(`', | |
}, | |
{ | |
query: '(((D, ())))', | |
elems: [ | |
{ | |
name: "()", | |
fullPath: ["()"], | |
pathWithoutLast: [], | |
pathLast: "()", | |
generics: [ | |
{ | |
name: "d", | |
fullPath: ["d"], | |
pathWithoutLast: [], | |
pathLast: "d", | |
generics: [], | |
typeFilter: -1, | |
}, | |
{ | |
name: "()", | |
fullPath: ["()"], | |
pathWithoutLast: [], | |
pathLast: "()", | |
generics: [], | |
typeFilter: 1, | |
}, | |
], | |
typeFilter: 1, | |
} | |
], | |
foundElems: 1, | |
original: '(((D, ())))', | |
returned: [], | |
userQuery: '(((d, ())))', | |
error: null, | |
}, | |
{ | |
query: '(),u8', | |
elems: [ | |
{ | |
name: "()", | |
fullPath: ["()"], | |
pathWithoutLast: [], | |
pathLast: "()", | |
generics: [], | |
typeFilter: 1, | |
}, | |
{ | |
name: "u8", | |
fullPath: ["u8"], | |
pathWithoutLast: [], | |
pathLast: "u8", | |
generics: [], | |
typeFilter: -1, | |
}, | |
], | |
foundElems: 2, | |
original: "(),u8", | |
returned: [], | |
userQuery: "(),u8", | |
error: null, | |
}, | |
// Parens act as grouping operators when: | |
// - there's no commas directly nested within | |
// - there's at least two child types (zero means unit) | |
// - it's not tagged with a type filter | |
// Otherwise, they represent unit and/or tuple. To search for | |
// unit or tuple specifically, use `primitive:unit` or `primitive:tuple<...>`. | |
{ | |
query: '(u8)', | |
elems: [ | |
{ | |
name: "u8", | |
fullPath: ["u8"], | |
pathWithoutLast: [], | |
pathLast: "u8", | |
generics: [], | |
typeFilter: -1, | |
}, | |
], | |
foundElems: 1, | |
original: "(u8)", | |
returned: [], | |
userQuery: "(u8)", | |
error: null, | |
}, | |
{ | |
query: '(u8,)', | |
elems: [ | |
{ | |
name: "()", | |
fullPath: ["()"], | |
pathWithoutLast: [], | |
pathLast: "()", | |
generics: [ | |
{ | |
name: "u8", | |
fullPath: ["u8"], | |
pathWithoutLast: [], | |
pathLast: "u8", | |
generics: [], | |
typeFilter: -1, | |
}, | |
], | |
typeFilter: 1, | |
}, | |
], | |
foundElems: 1, | |
original: "(u8,)", | |
returned: [], | |
userQuery: "(u8,)", | |
error: null, | |
}, | |
{ | |
query: '(,u8)', | |
elems: [ | |
{ | |
name: "()", | |
fullPath: ["()"], | |
pathWithoutLast: [], | |
pathLast: "()", | |
generics: [ | |
{ | |
name: "u8", | |
fullPath: ["u8"], | |
pathWithoutLast: [], | |
pathLast: "u8", | |
generics: [], | |
typeFilter: -1, | |
}, | |
], | |
typeFilter: 1, | |
}, | |
], | |
foundElems: 1, | |
original: "(,u8)", | |
returned: [], | |
userQuery: "(,u8)", | |
error: null, | |
}, | |
{ | |
query: 'primitive:(u8)', | |
elems: [ | |
{ | |
name: "()", | |
fullPath: ["()"], | |
pathWithoutLast: [], | |
pathLast: "()", | |
generics: [ | |
{ | |
name: "u8", | |
fullPath: ["u8"], | |
pathWithoutLast: [], | |
pathLast: "u8", | |
generics: [], | |
typeFilter: -1, | |
}, | |
], | |
typeFilter: 1, | |
}, | |
], | |
foundElems: 1, | |
original: "primitive:(u8)", | |
returned: [], | |
userQuery: "primitive:(u8)", | |
error: null, | |
}, | |
{ | |
query: '(primitive:u8)', | |
elems: [ | |
{ | |
name: "u8", | |
fullPath: ["u8"], | |
pathWithoutLast: [], | |
pathLast: "u8", | |
generics: [], | |
typeFilter: 1, | |
}, | |
], | |
foundElems: 1, | |
original: "(primitive:u8)", | |
returned: [], | |
userQuery: "(primitive:u8)", | |
error: null, | |
}, | |
{ | |
query: '(u8,u8)', | |
elems: [ | |
{ | |
name: "()", | |
fullPath: ["()"], | |
pathWithoutLast: [], | |
pathLast: "()", | |
generics: [ | |
{ | |
name: "u8", | |
fullPath: ["u8"], | |
pathWithoutLast: [], | |
pathLast: "u8", | |
generics: [], | |
typeFilter: -1, | |
}, | |
{ | |
name: "u8", | |
fullPath: ["u8"], | |
pathWithoutLast: [], | |
pathLast: "u8", | |
generics: [], | |
typeFilter: -1, | |
}, | |
], | |
typeFilter: 1, | |
}, | |
], | |
foundElems: 1, | |
original: "(u8,u8)", | |
returned: [], | |
userQuery: "(u8,u8)", | |
error: null, | |
}, | |
{ | |
query: '(u8<u8>)', | |
elems: [ | |
{ | |
name: "u8", | |
fullPath: ["u8"], | |
pathWithoutLast: [], | |
pathLast: "u8", | |
generics: [ | |
{ | |
name: "u8", | |
fullPath: ["u8"], | |
pathWithoutLast: [], | |
pathLast: "u8", | |
generics: [], | |
typeFilter: -1, | |
}, | |
], | |
typeFilter: -1, | |
}, | |
], | |
foundElems: 1, | |
original: "(u8<u8>)", | |
returned: [], | |
userQuery: "(u8<u8>)", | |
error: null, | |
}, | |
{ | |
query: '()', | |
elems: [ | |
{ | |
name: "()", | |
fullPath: ["()"], | |
pathWithoutLast: [], | |
pathLast: "()", | |
generics: [], | |
typeFilter: 1, | |
}, | |
], | |
foundElems: 1, | |
original: "()", | |
returned: [], | |
userQuery: "()", | |
error: null, | |
}, | |
{ | |
query: '(>', | |
elems: [], | |
foundElems: 0, | |
original: "(>", | |
returned: [], | |
userQuery: "(>", | |
error: "Unexpected `>` after `(`", | |
}, | |
{ | |
query: '(<', | |
elems: [], | |
foundElems: 0, | |
original: "(<", | |
returned: [], | |
userQuery: "(<", | |
error: "Found generics without a path", | |
}, | |
{ | |
query: '(a>', | |
elems: [], | |
foundElems: 0, | |
original: "(a>", | |
returned: [], | |
userQuery: "(a>", | |
error: "Unexpected `>` after `(`", | |
}, | |
{ | |
query: '(a<', | |
elems: [], | |
foundElems: 0, | |
original: "(a<", | |
returned: [], | |
userQuery: "(a<", | |
error: "Unclosed `<`", | |
}, | |
{ | |
query: '(a', | |
elems: [], | |
foundElems: 0, | |
original: "(a", | |
returned: [], | |
userQuery: "(a", | |
error: "Unclosed `(`", | |
}, | |
{ | |
query: '(', | |
elems: [], | |
foundElems: 0, | |
original: "(", | |
returned: [], | |
userQuery: "(", | |
error: "Unclosed `(`", | |
}, | |
{ | |
query: ')', | |
elems: [], | |
foundElems: 0, | |
original: ")", | |
returned: [], | |
userQuery: ")", | |
error: "Unexpected `)`", | |
}, | |
{ | |
query: '(a<b>', | |
elems: [], | |
foundElems: 0, | |
original: "(a<b>", | |
returned: [], | |
userQuery: "(a<b>", | |
error: "Unclosed `(`", | |
}, | |
{ | |
query: 'a<b>)', | |
elems: [], | |
foundElems: 0, | |
original: "a<b>)", | |
returned: [], | |
userQuery: "a<b>)", | |
error: "Unexpected `)` after `>`", | |
}, | |
{ | |
query: 'macro:(u8)', | |
elems: [], | |
foundElems: 0, | |
original: "macro:(u8)", | |
returned: [], | |
userQuery: "macro:(u8)", | |
error: "Invalid search type: primitive `()` and `macro` both specified", | |
}, | |
]; |