diff options
| author | Michael Howell <michael@notriddle.com> | 2023-09-22 17:27:06 -0700 |
|---|---|---|
| committer | Michael Howell <michael@notriddle.com> | 2023-11-19 18:54:36 -0700 |
| commit | 63c50712f40055a60aefc8069661c3847bd27df4 (patch) | |
| tree | fd35e82b0a00c87a0f383f8b1d37d8dc7f3a4dcd /tests/rustdoc-js-std | |
| parent | 9a66e4471f71283fd54d80ef8147630d34756332 (diff) | |
| download | rust-63c50712f40055a60aefc8069661c3847bd27df4.tar.gz rust-63c50712f40055a60aefc8069661c3847bd27df4.zip | |
rustdoc-search: add support for associated types
Diffstat (limited to 'tests/rustdoc-js-std')
| -rw-r--r-- | tests/rustdoc-js-std/iterator-type-signatures.js | 29 | ||||
| -rw-r--r-- | tests/rustdoc-js-std/parser-bindings.js | 245 | ||||
| -rw-r--r-- | tests/rustdoc-js-std/parser-errors.js | 2 |
3 files changed, 275 insertions, 1 deletions
diff --git a/tests/rustdoc-js-std/iterator-type-signatures.js b/tests/rustdoc-js-std/iterator-type-signatures.js new file mode 100644 index 00000000000..c18ffc1651c --- /dev/null +++ b/tests/rustdoc-js-std/iterator-type-signatures.js @@ -0,0 +1,29 @@ +// ignore-order + +const FILTER_CRATE = "std"; + +const EXPECTED = [ + { + 'query': 'iterator<t> -> option<t>', + 'others': [ + { 'path': 'std::iter::Iterator', 'name': 'max' }, + { 'path': 'std::iter::Iterator', 'name': 'min' }, + { 'path': 'std::iter::Iterator', 'name': 'last' }, + { 'path': 'std::iter::Iterator', 'name': 'next' }, + ], + }, + { + 'query': 'iterator<t>, usize -> option<t>', + 'others': [ + { 'path': 'std::iter::Iterator', 'name': 'nth' }, + ], + }, + { + // Something should be done so that intoiterator is considered a match + // for plain iterator. + 'query': 'iterator<t>, intoiterator<t> -> ordering', + 'others': [ + { 'path': 'std::iter::Iterator', 'name': 'cmp' }, + ], + }, +]; diff --git a/tests/rustdoc-js-std/parser-bindings.js b/tests/rustdoc-js-std/parser-bindings.js new file mode 100644 index 00000000000..faf880c8116 --- /dev/null +++ b/tests/rustdoc-js-std/parser-bindings.js @@ -0,0 +1,245 @@ +const PARSED = [ + { + query: 'A<B=C>', + elems: [ + { + name: "a", + fullPath: ["a"], + pathWithoutLast: [], + pathLast: "a", + generics: [], + bindings: [ + [ + 'b', + [ + { + name: "c", + fullPath: ["c"], + pathWithoutLast: [], + pathLast: "c", + generics: [], + typeFilter: -1, + }, + ] + ], + ], + typeFilter: -1, + }, + ], + foundElems: 1, + original: 'A<B=C>', + returned: [], + userQuery: 'a<b=c>', + error: null, + }, + { + query: 'A<B = C>', + elems: [ + { + name: "a", + fullPath: ["a"], + pathWithoutLast: [], + pathLast: "a", + generics: [], + bindings: [ + [ + 'b', + [{ + name: "c", + fullPath: ["c"], + pathWithoutLast: [], + pathLast: "c", + generics: [], + typeFilter: -1, + }] + ], + ], + typeFilter: -1, + }, + ], + foundElems: 1, + original: 'A<B = C>', + returned: [], + userQuery: 'a<b = c>', + error: null, + }, + { + query: 'A<B=!>', + elems: [ + { + name: "a", + fullPath: ["a"], + pathWithoutLast: [], + pathLast: "a", + generics: [], + bindings: [ + [ + 'b', + [{ + name: "never", + fullPath: ["never"], + pathWithoutLast: [], + pathLast: "never", + generics: [], + typeFilter: 15, + }] + ], + ], + typeFilter: -1, + }, + ], + foundElems: 1, + original: 'A<B=!>', + returned: [], + userQuery: 'a<b=!>', + error: null, + }, + { + query: 'A<B=[]>', + elems: [ + { + name: "a", + fullPath: ["a"], + pathWithoutLast: [], + pathLast: "a", + generics: [], + bindings: [ + [ + 'b', + [{ + name: "[]", + fullPath: ["[]"], + pathWithoutLast: [], + pathLast: "[]", + generics: [], + typeFilter: 15, + }] + ], + ], + typeFilter: -1, + }, + ], + foundElems: 1, + original: 'A<B=[]>', + returned: [], + userQuery: 'a<b=[]>', + error: null, + }, + { + query: 'A<B=[!]>', + elems: [ + { + name: "a", + fullPath: ["a"], + pathWithoutLast: [], + pathLast: "a", + generics: [], + bindings: [ + [ + 'b', + [{ + name: "[]", + fullPath: ["[]"], + pathWithoutLast: [], + pathLast: "[]", + generics: [ + { + name: "never", + fullPath: ["never"], + pathWithoutLast: [], + pathLast: "never", + generics: [], + typeFilter: 15, + }, + ], + typeFilter: 15, + }] + ], + ], + typeFilter: -1, + }, + ], + foundElems: 1, + original: 'A<B=[!]>', + returned: [], + userQuery: 'a<b=[!]>', + error: null, + }, + { + query: 'A<B=C=>', + elems: [], + foundElems: 0, + original: 'A<B=C=>', + returned: [], + userQuery: 'a<b=c=>', + error: "Cannot write `=` twice in a binding", + }, + { + query: 'A<B=>', + elems: [], + foundElems: 0, + original: 'A<B=>', + returned: [], + userQuery: 'a<b=>', + error: "Unexpected `>` after `=`", + }, + { + query: 'B=C', + elems: [], + foundElems: 0, + original: 'B=C', + returned: [], + userQuery: 'b=c', + error: "Type parameter `=` must be within generics list", + }, + { + query: '[B=C]', + elems: [], + foundElems: 0, + original: '[B=C]', + returned: [], + userQuery: '[b=c]', + error: "Type parameter `=` cannot be within slice `[]`", + }, + { + query: 'A<B<X>=C>', + elems: [ + { + name: "a", + fullPath: ["a"], + pathWithoutLast: [], + pathLast: "a", + generics: [], + bindings: [ + [ + 'b', + [ + { + name: "c", + fullPath: ["c"], + pathWithoutLast: [], + pathLast: "c", + generics: [], + typeFilter: -1, + }, + { + name: "x", + fullPath: ["x"], + pathWithoutLast: [], + pathLast: "x", + generics: [], + typeFilter: -1, + }, + ], + ], + ], + typeFilter: -1, + }, + ], + foundElems: 1, + original: 'A<B<X>=C>', + returned: [], + userQuery: 'a<b<x>=c>', + error: null, + }, +]; diff --git a/tests/rustdoc-js-std/parser-errors.js b/tests/rustdoc-js-std/parser-errors.js index b32bfea5439..ab8d72bf71b 100644 --- a/tests/rustdoc-js-std/parser-errors.js +++ b/tests/rustdoc-js-std/parser-errors.js @@ -303,7 +303,7 @@ const PARSED = [ original: '->a<>b', returned: [], userQuery: '->a<>b', - error: 'Expected `,` after `>`, found `b`', + error: 'Expected `,` or `=` after `>`, found `b`', }, { query: "a<->", |
