diff options
| author | Guillaume Gomez <guillaume.gomez@huawei.com> | 2022-03-28 16:14:00 +0200 |
|---|---|---|
| committer | Guillaume Gomez <guillaume.gomez@huawei.com> | 2022-04-18 20:59:09 +0200 |
| commit | da829d8d9de73f196b17ab5e8b4a4c07863e30c9 (patch) | |
| tree | 08de17fef317c80546715484ccafaff90c9bef27 /src/test/rustdoc-js-std | |
| parent | 1f5c4c2b306689347d12627bae9895624ee8eae1 (diff) | |
| download | rust-da829d8d9de73f196b17ab5e8b4a4c07863e30c9.tar.gz rust-da829d8d9de73f196b17ab5e8b4a4c07863e30c9.zip | |
Improve the BNF description a bit and fix some issues
Diffstat (limited to 'src/test/rustdoc-js-std')
| -rw-r--r-- | src/test/rustdoc-js-std/parser-errors.js | 88 | ||||
| -rw-r--r-- | src/test/rustdoc-js-std/parser-generics.js | 27 | ||||
| -rw-r--r-- | src/test/rustdoc-js-std/parser-returned.js | 38 | ||||
| -rw-r--r-- | src/test/rustdoc-js-std/parser-weird-queries.js | 26 |
4 files changed, 157 insertions, 22 deletions
diff --git a/src/test/rustdoc-js-std/parser-errors.js b/src/test/rustdoc-js-std/parser-errors.js index 42d69ed3fe0..bd024a932a1 100644 --- a/src/test/rustdoc-js-std/parser-errors.js +++ b/src/test/rustdoc-js-std/parser-errors.js @@ -1,15 +1,14 @@ const QUERY = [ '<P>', '-> <P>', - '<"P">', + 'a<"P">', '"P" "P"', 'P "P"', '"p" p', '"const": p', - "<:a>", - "<::a>", + "a<:a>", + "a<::a>", "((a))", - "->,a", "(p -> p", "::a::b", "a::::b", @@ -22,6 +21,12 @@ const QUERY = [ "a>bb", "ab'", "a->", + '"p" <a>', + '"p" a<a>', + "a,<", + "aaaaa<>b", + "fn:aaaaa<>b", + "->a<>b", ]; const PARSED = [ @@ -46,10 +51,10 @@ const PARSED = [ { elems: [], foundElems: 0, - original: "<\"P\">", + original: "a<\"P\">", returned: [], typeFilter: -1, - userQuery: "<\"p\">", + userQuery: "a<\"p\">", error: "`\"` cannot be used in generics", }, { @@ -91,19 +96,19 @@ const PARSED = [ { elems: [], foundElems: 0, - original: "<:a>", + original: "a<:a>", returned: [], typeFilter: -1, - userQuery: "<:a>", + userQuery: "a<:a>", error: "Unexpected `:` after `<`", }, { elems: [], foundElems: 0, - original: "<::a>", + original: "a<::a>", returned: [], typeFilter: -1, - userQuery: "<::a>", + userQuery: "a<::a>", error: "Unexpected `::`: paths cannot start with `::`", }, { @@ -118,15 +123,6 @@ const PARSED = [ { elems: [], foundElems: 0, - original: "->,a", - returned: [], - typeFilter: -1, - userQuery: "->,a", - error: "Unexpected `,` after `->`", - }, - { - elems: [], - foundElems: 0, original: "(p -> p", returned: [], typeFilter: -1, @@ -232,4 +228,58 @@ const PARSED = [ userQuery: "a->", error: "Expected at least one item after `->`", }, + { + elems: [], + foundElems: 0, + original: '"p" <a>', + returned: [], + typeFilter: -1, + userQuery: '"p" <a>', + error: "Found generics without a path", + }, + { + elems: [], + foundElems: 0, + original: '"p" a<a>', + returned: [], + typeFilter: -1, + userQuery: '"p" a<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`', + }, ]; diff --git a/src/test/rustdoc-js-std/parser-generics.js b/src/test/rustdoc-js-std/parser-generics.js index cc92f2333d2..0cf7f5019aa 100644 --- a/src/test/rustdoc-js-std/parser-generics.js +++ b/src/test/rustdoc-js-std/parser-generics.js @@ -1,4 +1,4 @@ -const QUERY = ['A<B<C<D>, E>', 'p<> u8']; +const QUERY = ['A<B<C<D>, E>', 'p<> u8', '"p"<a>']; const PARSED = [ { @@ -34,4 +34,29 @@ const PARSED = [ userQuery: "p<> u8", error: null, }, + { + elems: [ + { + name: "p", + fullPath: ["p"], + pathWithoutLast: [], + pathLast: "p", + generics: [ + { + name: "a", + fullPath: ["a"], + pathWithoutLast: [], + pathLast: "a", + generics: [], + }, + ], + }, + ], + foundElems: 1, + original: '"p"<a>', + returned: [], + typeFilter: -1, + userQuery: '"p"<a>', + error: null, + }, ]; diff --git a/src/test/rustdoc-js-std/parser-returned.js b/src/test/rustdoc-js-std/parser-returned.js index 8910275c91e..b45466aa940 100644 --- a/src/test/rustdoc-js-std/parser-returned.js +++ b/src/test/rustdoc-js-std/parser-returned.js @@ -1,4 +1,4 @@ -const QUERY = ['-> F<P>', '-> P']; +const QUERY = ['-> F<P>', '-> P', '->,a', 'aaaaa->a']; const PARSED = [ { @@ -39,4 +39,40 @@ const PARSED = [ userQuery: "-> p", error: null, }, + { + elems: [], + foundElems: 1, + original: "->,a", + returned: [{ + name: "a", + fullPath: ["a"], + pathWithoutLast: [], + pathLast: "a", + generics: [], + }], + typeFilter: -1, + userQuery: "->,a", + error: null, + }, + { + elems: [{ + name: "aaaaa", + fullPath: ["aaaaa"], + pathWithoutLast: [], + pathLast: "aaaaa", + generics: [], + }], + foundElems: 2, + original: "aaaaa->a", + returned: [{ + name: "a", + fullPath: ["a"], + pathWithoutLast: [], + pathLast: "a", + generics: [], + }], + typeFilter: -1, + userQuery: "aaaaa->a", + error: null, + }, ]; diff --git a/src/test/rustdoc-js-std/parser-weird-queries.js b/src/test/rustdoc-js-std/parser-weird-queries.js index 87ebe21c49b..4b4ce64284e 100644 --- a/src/test/rustdoc-js-std/parser-weird-queries.js +++ b/src/test/rustdoc-js-std/parser-weird-queries.js @@ -1,7 +1,7 @@ // This test is mostly to check that the parser still kinda outputs something // (and doesn't enter an infinite loop!) even though the query is completely // invalid. -const QUERY = ['a b', 'a b', 'a,b(c)']; +const QUERY = ['a b', 'a b', 'a,b(c)', 'aaa,a']; const PARSED = [ { @@ -61,4 +61,28 @@ const PARSED = [ userQuery: "a,b(c)", error: "Unexpected `(`", }, + { + elems: [ + { + name: "aaa", + fullPath: ["aaa"], + pathWithoutLast: [], + pathLast: "aaa", + generics: [], + }, + { + name: "a", + fullPath: ["a"], + pathWithoutLast: [], + pathLast: "a", + generics: [], + }, + ], + foundElems: 2, + original: "aaa,a", + returned: [], + typeFilter: -1, + userQuery: "aaa,a", + error: null, + }, ]; |
