| 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", |
| }, |
| ]; |