| const PARSED = [ | |
| { | |
| query: '(((D, ()))', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: '(((D, ()))', | |
| returned: [], | |
| error: 'Unclosed `(`', | |
| }, | |
| { | |
| query: '(((D, ())))', | |
| elems: [ | |
| { | |
| name: "()", | |
| fullPath: ["()"], | |
| pathWithoutLast: [], | |
| pathLast: "()", | |
| generics: [ | |
| { | |
| name: "D", | |
| fullPath: ["d"], | |
| pathWithoutLast: [], | |
| pathLast: "d", | |
| generics: [], | |
| typeFilter: null, | |
| }, | |
| { | |
| name: "()", | |
| fullPath: ["()"], | |
| pathWithoutLast: [], | |
| pathLast: "()", | |
| generics: [], | |
| typeFilter: "primitive", | |
| }, | |
| ], | |
| typeFilter: "primitive", | |
| } | |
| ], | |
| foundElems: 1, | |
| userQuery: '(((D, ())))', | |
| returned: [], | |
| error: null, | |
| }, | |
| { | |
| query: '(),u8', | |
| elems: [ | |
| { | |
| name: "()", | |
| fullPath: ["()"], | |
| pathWithoutLast: [], | |
| pathLast: "()", | |
| generics: [], | |
| typeFilter: "primitive", | |
| }, | |
| { | |
| name: "u8", | |
| fullPath: ["u8"], | |
| pathWithoutLast: [], | |
| pathLast: "u8", | |
| generics: [], | |
| typeFilter: null, | |
| }, | |
| ], | |
| foundElems: 2, | |
| userQuery: "(),u8", | |
| returned: [], | |
| 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: null, | |
| }, | |
| ], | |
| foundElems: 1, | |
| userQuery: "(u8)", | |
| returned: [], | |
| error: null, | |
| }, | |
| { | |
| query: '(u8,)', | |
| elems: [ | |
| { | |
| name: "()", | |
| fullPath: ["()"], | |
| pathWithoutLast: [], | |
| pathLast: "()", | |
| generics: [ | |
| { | |
| name: "u8", | |
| fullPath: ["u8"], | |
| pathWithoutLast: [], | |
| pathLast: "u8", | |
| generics: [], | |
| typeFilter: null, | |
| }, | |
| ], | |
| typeFilter: "primitive", | |
| }, | |
| ], | |
| foundElems: 1, | |
| userQuery: "(u8,)", | |
| returned: [], | |
| error: null, | |
| }, | |
| { | |
| query: '(,u8)', | |
| elems: [ | |
| { | |
| name: "()", | |
| fullPath: ["()"], | |
| pathWithoutLast: [], | |
| pathLast: "()", | |
| generics: [ | |
| { | |
| name: "u8", | |
| fullPath: ["u8"], | |
| pathWithoutLast: [], | |
| pathLast: "u8", | |
| generics: [], | |
| typeFilter: null, | |
| }, | |
| ], | |
| typeFilter: "primitive", | |
| }, | |
| ], | |
| foundElems: 1, | |
| userQuery: "(,u8)", | |
| returned: [], | |
| error: null, | |
| }, | |
| { | |
| query: 'primitive:(u8)', | |
| elems: [ | |
| { | |
| name: "()", | |
| fullPath: ["()"], | |
| pathWithoutLast: [], | |
| pathLast: "()", | |
| generics: [ | |
| { | |
| name: "u8", | |
| fullPath: ["u8"], | |
| pathWithoutLast: [], | |
| pathLast: "u8", | |
| generics: [], | |
| typeFilter: null, | |
| }, | |
| ], | |
| typeFilter: "primitive", | |
| }, | |
| ], | |
| foundElems: 1, | |
| userQuery: "primitive:(u8)", | |
| returned: [], | |
| error: null, | |
| }, | |
| { | |
| query: '(primitive:u8)', | |
| elems: [ | |
| { | |
| name: "u8", | |
| fullPath: ["u8"], | |
| pathWithoutLast: [], | |
| pathLast: "u8", | |
| generics: [], | |
| typeFilter: "primitive", | |
| }, | |
| ], | |
| foundElems: 1, | |
| userQuery: "(primitive:u8)", | |
| returned: [], | |
| error: null, | |
| }, | |
| { | |
| query: '(u8,u8)', | |
| elems: [ | |
| { | |
| name: "()", | |
| fullPath: ["()"], | |
| pathWithoutLast: [], | |
| pathLast: "()", | |
| generics: [ | |
| { | |
| name: "u8", | |
| fullPath: ["u8"], | |
| pathWithoutLast: [], | |
| pathLast: "u8", | |
| generics: [], | |
| typeFilter: null, | |
| }, | |
| { | |
| name: "u8", | |
| fullPath: ["u8"], | |
| pathWithoutLast: [], | |
| pathLast: "u8", | |
| generics: [], | |
| typeFilter: null, | |
| }, | |
| ], | |
| typeFilter: "primitive", | |
| }, | |
| ], | |
| foundElems: 1, | |
| userQuery: "(u8,u8)", | |
| returned: [], | |
| error: null, | |
| }, | |
| { | |
| query: '(u8<u8>)', | |
| elems: [ | |
| { | |
| name: "u8", | |
| fullPath: ["u8"], | |
| pathWithoutLast: [], | |
| pathLast: "u8", | |
| generics: [ | |
| { | |
| name: "u8", | |
| fullPath: ["u8"], | |
| pathWithoutLast: [], | |
| pathLast: "u8", | |
| generics: [], | |
| typeFilter: null, | |
| }, | |
| ], | |
| typeFilter: null, | |
| }, | |
| ], | |
| foundElems: 1, | |
| userQuery: "(u8<u8>)", | |
| returned: [], | |
| error: null, | |
| }, | |
| { | |
| query: '()', | |
| elems: [ | |
| { | |
| name: "()", | |
| fullPath: ["()"], | |
| pathWithoutLast: [], | |
| pathLast: "()", | |
| generics: [], | |
| typeFilter: "primitive", | |
| }, | |
| ], | |
| foundElems: 1, | |
| userQuery: "()", | |
| returned: [], | |
| error: null, | |
| }, | |
| { | |
| query: '(>', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: "(>", | |
| returned: [], | |
| error: "Unexpected `>` after `(`", | |
| }, | |
| { | |
| query: '(<', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: "(<", | |
| returned: [], | |
| error: "Found generics without a path", | |
| }, | |
| { | |
| query: '(a>', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: "(a>", | |
| returned: [], | |
| error: "Unexpected `>` after `(`", | |
| }, | |
| { | |
| query: '(a<', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: "(a<", | |
| returned: [], | |
| error: "Unclosed `<`", | |
| }, | |
| { | |
| query: '(a', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: "(a", | |
| returned: [], | |
| error: "Unclosed `(`", | |
| }, | |
| { | |
| query: '(', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: "(", | |
| returned: [], | |
| error: "Unclosed `(`", | |
| }, | |
| { | |
| query: ')', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: ")", | |
| returned: [], | |
| error: "Unexpected `)`", | |
| }, | |
| { | |
| query: '(a<b>', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: "(a<b>", | |
| returned: [], | |
| error: "Unclosed `(`", | |
| }, | |
| { | |
| query: 'a<b>)', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: "a<b>)", | |
| returned: [], | |
| error: "Unexpected `)` after `>`", | |
| }, | |
| { | |
| query: 'macro:(u8)', | |
| elems: [], | |
| foundElems: 0, | |
| userQuery: "macro:(u8)", | |
| returned: [], | |
| error: "Invalid search type: primitive `()` and `macro` both specified", | |
| }, | |
| ]; |