const QUERY = [ '

', '->

', 'a<"P">', '"P" "P"', 'P "P"', '"p" p', '"const": p', "a<:a>", "a<::a>", "((a))", "(p -> p", "::a::b", "a::::b", "a::b::", ":a", "a b:", "a (b:", "_:", "a-bb", "a>bb", "ab'", "a->", '"p" ', '"p" a', "a,<", "aaaaa<>b", "fn:aaaaa<>b", "->a<>b", "a<->", "a:: a", "a ::a", "a:", "a<>:", "a,:", " a<> :", "mod : :", "a!a", "a!!", "mod:a!", "a!::a", "a<", ]; const PARSED = [ { elems: [], foundElems: 0, original: "

", returned: [], typeFilter: -1, userQuery: "

", error: "Found generics without a path", }, { elems: [], foundElems: 0, original: "->

", returned: [], typeFilter: -1, userQuery: "->

", error: "Found generics without a path", }, { elems: [], foundElems: 0, original: "a<\"P\">", returned: [], typeFilter: -1, userQuery: "a<\"p\">", error: "Unexpected `\"` in generics", }, { elems: [], foundElems: 0, original: "\"P\" \"P\"", returned: [], typeFilter: -1, userQuery: "\"p\" \"p\"", error: "Cannot have more than one literal search element", }, { elems: [], foundElems: 0, original: "P \"P\"", returned: [], typeFilter: -1, userQuery: "p \"p\"", error: "Cannot use literal search when there is more than one element", }, { elems: [], foundElems: 0, original: "\"p\" p", returned: [], typeFilter: -1, userQuery: "\"p\" p", error: "You cannot have more than one element if you use quotes", }, { elems: [], foundElems: 0, original: "\"const\": p", returned: [], typeFilter: -1, userQuery: "\"const\": p", error: "You cannot use quotes on type filter", }, { elems: [], foundElems: 0, original: "a<:a>", returned: [], typeFilter: -1, userQuery: "a<:a>", error: "Unexpected `:` after `<`", }, { elems: [], foundElems: 0, original: "a<::a>", returned: [], typeFilter: -1, userQuery: "a<::a>", error: "Unexpected `::`: paths cannot start with `::`", }, { elems: [], foundElems: 0, original: "((a))", returned: [], typeFilter: -1, userQuery: "((a))", error: "Unexpected `(`", }, { elems: [], foundElems: 0, original: "(p -> p", returned: [], typeFilter: -1, userQuery: "(p -> p", error: "Unexpected `(`", }, { elems: [], foundElems: 0, original: "::a::b", returned: [], typeFilter: -1, userQuery: "::a::b", error: "Paths cannot start with `::`", }, { elems: [], foundElems: 0, original: "a::::b", returned: [], typeFilter: -1, userQuery: "a::::b", error: "Unexpected `::::`", }, { elems: [], foundElems: 0, original: "a::b::", returned: [], typeFilter: -1, userQuery: "a::b::", error: "Paths cannot end with `::`", }, { elems: [], foundElems: 0, original: ":a", returned: [], typeFilter: -1, userQuery: ":a", error: "Expected type filter before `:`", }, { elems: [], foundElems: 0, original: "a b:", returned: [], typeFilter: -1, userQuery: "a b:", error: "Unexpected `:`", }, { elems: [], foundElems: 0, original: "a (b:", returned: [], typeFilter: -1, userQuery: "a (b:", error: "Unexpected `(`", }, { elems: [], foundElems: 0, original: "_:", returned: [], typeFilter: -1, userQuery: "_:", error: "Unknown type filter `_`", }, { elems: [], foundElems: 0, original: "a-bb", returned: [], typeFilter: -1, userQuery: "a-bb", error: "Unexpected `-` (did you mean `->`?)", }, { elems: [], foundElems: 0, original: "a>bb", returned: [], typeFilter: -1, userQuery: "a>bb", error: "Unexpected `>` (did you mean `->`?)", }, { elems: [], foundElems: 0, original: "ab'", returned: [], typeFilter: -1, userQuery: "ab'", error: "Unexpected `'`", }, { elems: [], foundElems: 0, original: "a->", returned: [], typeFilter: -1, userQuery: "a->", error: "Expected at least one item after `->`", }, { elems: [], foundElems: 0, original: '"p" ', returned: [], typeFilter: -1, userQuery: '"p" ', error: "Found generics without a path", }, { elems: [], foundElems: 0, original: '"p" a', returned: [], typeFilter: -1, userQuery: '"p" a', error: "You cannot have more than one element if you use quotes", }, { elems: [], foundElems: 0, original: 'a,<', returned: [], typeFilter: -1, userQuery: 'a,<', error: 'Found generics without a path', }, { elems: [], foundElems: 0, original: 'aaaaa<>b', returned: [], typeFilter: -1, userQuery: 'aaaaa<>b', error: 'Expected `,`, ` `, `:` or `->`, found `b`', }, { elems: [], foundElems: 0, original: 'fn:aaaaa<>b', returned: [], typeFilter: -1, userQuery: 'fn:aaaaa<>b', error: 'Expected `,`, ` ` or `->`, found `b`', }, { elems: [], foundElems: 0, original: '->a<>b', returned: [], typeFilter: -1, userQuery: '->a<>b', error: 'Expected `,` or ` `, found `b`', }, { elems: [], foundElems: 0, original: 'a<->', returned: [], typeFilter: -1, userQuery: 'a<->', error: 'Unexpected `-` after `<`', }, { elems: [], foundElems: 0, original: 'a:: a', returned: [], typeFilter: -1, userQuery: 'a:: a', error: 'Paths cannot end with `::`', }, { elems: [], foundElems: 0, original: 'a ::a', returned: [], typeFilter: -1, userQuery: 'a ::a', error: 'Paths cannot start with `::`', }, { elems: [], foundElems: 0, original: "a:", returned: [], typeFilter: -1, userQuery: "a:", error: 'Unexpected `:`', }, { elems: [], foundElems: 0, original: "a<>:", returned: [], typeFilter: -1, userQuery: "a<>:", error: 'Unexpected `<` in type filter', }, { elems: [], foundElems: 0, original: "a,:", returned: [], typeFilter: -1, userQuery: "a,:", error: 'Unexpected `,` in type filter', }, { elems: [], foundElems: 0, original: "a<> :", returned: [], typeFilter: -1, userQuery: "a<> :", error: 'Unexpected `<` in type filter', }, { elems: [], foundElems: 0, original: "mod : :", returned: [], typeFilter: -1, userQuery: "mod : :", error: 'Unexpected `:`', }, { elems: [], foundElems: 0, original: "a!a", returned: [], typeFilter: -1, userQuery: "a!a", error: 'Unexpected `!`: it can only be at the end of an ident', }, { elems: [], foundElems: 0, original: "a!!", returned: [], typeFilter: -1, userQuery: "a!!", error: 'Cannot have more than one `!` in an ident', }, { elems: [], foundElems: 0, original: "mod:a!", returned: [], typeFilter: -1, userQuery: "mod:a!", error: 'Invalid search type: macro `!` and `mod` both specified', }, { elems: [], foundElems: 0, original: "a!::a", returned: [], typeFilter: -1, userQuery: "a!::a", error: 'Cannot have associated items in macros', }, { elems: [], foundElems: 0, original: "a<", returned: [], typeFilter: -1, userQuery: "a<", error: "Unclosed `<`", }, ];