about summary refs log tree commit diff
path: root/src/test/rustdoc-js-std
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume.gomez@huawei.com>2022-03-28 16:14:00 +0200
committerGuillaume Gomez <guillaume.gomez@huawei.com>2022-04-18 20:59:09 +0200
commitda829d8d9de73f196b17ab5e8b4a4c07863e30c9 (patch)
tree08de17fef317c80546715484ccafaff90c9bef27 /src/test/rustdoc-js-std
parent1f5c4c2b306689347d12627bae9895624ee8eae1 (diff)
downloadrust-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.js88
-rw-r--r--src/test/rustdoc-js-std/parser-generics.js27
-rw-r--r--src/test/rustdoc-js-std/parser-returned.js38
-rw-r--r--src/test/rustdoc-js-std/parser-weird-queries.js26
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,
+    },
 ];