summaryrefslogtreecommitdiffstats
path: root/tests/rustdoc-js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/rustdoc-js')
-rw-r--r--tests/rustdoc-js/full-path-function.js43
-rw-r--r--tests/rustdoc-js/full-path-function.rs17
-rw-r--r--tests/rustdoc-js/generics-match-ambiguity.js1
-rw-r--r--tests/rustdoc-js/generics-trait.js8
-rw-r--r--tests/rustdoc-js/generics-unbox.js38
-rw-r--r--tests/rustdoc-js/generics-unbox.rs36
-rw-r--r--tests/rustdoc-js/type-parameters.js87
-rw-r--r--tests/rustdoc-js/type-parameters.rs15
8 files changed, 243 insertions, 2 deletions
diff --git a/tests/rustdoc-js/full-path-function.js b/tests/rustdoc-js/full-path-function.js
new file mode 100644
index 000000000..48be51b15
--- /dev/null
+++ b/tests/rustdoc-js/full-path-function.js
@@ -0,0 +1,43 @@
+// exact-check
+
+const EXPECTED = [
+ {
+ 'query': 'sac -> usize',
+ 'others': [
+ { 'path': 'full_path_function::b::Sac', 'name': 'bar' },
+ { 'path': 'full_path_function::b::Sac', 'name': 'len' },
+ { 'path': 'full_path_function::sac::Sac', 'name': 'len' },
+ ],
+ },
+ {
+ 'query': 'b::sac -> usize',
+ 'others': [
+ { 'path': 'full_path_function::b::Sac', 'name': 'bar' },
+ { 'path': 'full_path_function::b::Sac', 'name': 'len' },
+ ],
+ },
+ {
+ 'query': 'b::sac -> u32',
+ 'others': [
+ { 'path': 'full_path_function::b::Sac', 'name': 'bar2' },
+ ],
+ },
+ {
+ 'query': 'string::string -> u32',
+ 'others': [
+ { 'path': 'full_path_function::b::Sac', 'name': 'string' },
+ ],
+ },
+ {
+ 'query': 'alloc::string::string -> u32',
+ 'others': [
+ { 'path': 'full_path_function::b::Sac', 'name': 'string' },
+ ],
+ },
+ {
+ 'query': 'alloc::string -> u32',
+ 'others': [
+ { 'path': 'full_path_function::b::Sac', 'name': 'string' },
+ ],
+ },
+];
diff --git a/tests/rustdoc-js/full-path-function.rs b/tests/rustdoc-js/full-path-function.rs
new file mode 100644
index 000000000..8dcc3f2b6
--- /dev/null
+++ b/tests/rustdoc-js/full-path-function.rs
@@ -0,0 +1,17 @@
+pub mod sac {
+ pub struct Sac;
+
+ impl Sac {
+ pub fn len(&self) -> usize { 0 }
+ }
+}
+
+pub mod b {
+ pub struct Sac;
+ impl Sac {
+ pub fn len(&self) -> usize { 0 }
+ pub fn bar(&self, w: u32) -> usize { 0 }
+ pub fn bar2(&self, w: u32) -> u32 { 0 }
+ pub fn string(w: String) -> u32 { 0 }
+ }
+}
diff --git a/tests/rustdoc-js/generics-match-ambiguity.js b/tests/rustdoc-js/generics-match-ambiguity.js
index a9932a16c..edce4268c 100644
--- a/tests/rustdoc-js/generics-match-ambiguity.js
+++ b/tests/rustdoc-js/generics-match-ambiguity.js
@@ -79,6 +79,7 @@ const EXPECTED = [
{ 'path': 'generics_match_ambiguity', 'name': 'baac' },
{ 'path': 'generics_match_ambiguity', 'name': 'baaf' },
{ 'path': 'generics_match_ambiguity', 'name': 'baag' },
+ { 'path': 'generics_match_ambiguity', 'name': 'baah' },
],
},
{
diff --git a/tests/rustdoc-js/generics-trait.js b/tests/rustdoc-js/generics-trait.js
index 4ccfb8f4e..a71393b5e 100644
--- a/tests/rustdoc-js/generics-trait.js
+++ b/tests/rustdoc-js/generics-trait.js
@@ -12,12 +12,16 @@ const EXPECTED = [
],
},
{
- 'query': 'Result<SomeTraiz>',
- 'correction': null,
+ 'query': 'Resulx<SomeTrait>',
'in_args': [],
'returned': [],
},
{
+ 'query': 'Result<SomeTraiz>',
+ 'proposeCorrectionFrom': 'SomeTraiz',
+ 'proposeCorrectionTo': 'SomeTrait',
+ },
+ {
'query': 'OtherThingxxxxxxxx',
'correction': null,
'in_args': [
diff --git a/tests/rustdoc-js/generics-unbox.js b/tests/rustdoc-js/generics-unbox.js
new file mode 100644
index 000000000..9cdfc7ac8
--- /dev/null
+++ b/tests/rustdoc-js/generics-unbox.js
@@ -0,0 +1,38 @@
+// exact-check
+
+const EXPECTED = [
+ {
+ 'query': 'Inside<T> -> Out1<T>',
+ 'others': [
+ { 'path': 'generics_unbox', 'name': 'alpha' },
+ ],
+ },
+ {
+ 'query': 'Inside<T> -> Out3<T>',
+ 'others': [
+ { 'path': 'generics_unbox', 'name': 'beta' },
+ { 'path': 'generics_unbox', 'name': 'gamma' },
+ ],
+ },
+ {
+ 'query': 'Inside<T> -> Out4<T>',
+ 'others': [
+ { 'path': 'generics_unbox', 'name': 'beta' },
+ { 'path': 'generics_unbox', 'name': 'gamma' },
+ ],
+ },
+ {
+ 'query': 'Inside<T> -> Out3<U, T>',
+ 'others': [
+ { 'path': 'generics_unbox', 'name': 'beta' },
+ { 'path': 'generics_unbox', 'name': 'gamma' },
+ ],
+ },
+ {
+ 'query': 'Inside<T> -> Out4<U, T>',
+ 'others': [
+ { 'path': 'generics_unbox', 'name': 'beta' },
+ { 'path': 'generics_unbox', 'name': 'gamma' },
+ ],
+ },
+];
diff --git a/tests/rustdoc-js/generics-unbox.rs b/tests/rustdoc-js/generics-unbox.rs
new file mode 100644
index 000000000..bef34f891
--- /dev/null
+++ b/tests/rustdoc-js/generics-unbox.rs
@@ -0,0 +1,36 @@
+pub struct Out<A, B = ()> {
+ a: A,
+ b: B,
+}
+
+pub struct Out1<A, const N: usize> {
+ a: [A; N],
+}
+
+pub struct Out2<A, const N: usize> {
+ a: [A; N],
+}
+
+pub struct Out3<A, B> {
+ a: A,
+ b: B,
+}
+
+pub struct Out4<A, B> {
+ a: A,
+ b: B,
+}
+
+pub struct Inside<T>(T);
+
+pub fn alpha<const N: usize, T>(_: Inside<T>) -> Out<Out1<T, N>, Out2<T, N>> {
+ loop {}
+}
+
+pub fn beta<T, U>(_: Inside<T>) -> Out<Out3<T, U>, Out4<U, T>> {
+ loop {}
+}
+
+pub fn gamma<T, U>(_: Inside<T>) -> Out<Out3<U, T>, Out4<T, U>> {
+ loop {}
+}
diff --git a/tests/rustdoc-js/type-parameters.js b/tests/rustdoc-js/type-parameters.js
new file mode 100644
index 000000000..e695f189b
--- /dev/null
+++ b/tests/rustdoc-js/type-parameters.js
@@ -0,0 +1,87 @@
+// exact-check
+// ignore-order
+
+const EXPECTED = [
+ {
+ query: '-> trait:Some',
+ others: [
+ { path: 'foo', name: 'alef' },
+ { path: 'foo', name: 'alpha' },
+ ],
+ },
+ {
+ query: '-> generic:T',
+ others: [
+ { path: 'foo', name: 'bet' },
+ { path: 'foo', name: 'alef' },
+ { path: 'foo', name: 'beta' },
+ ],
+ },
+ {
+ query: 'A -> B',
+ others: [
+ { path: 'foo', name: 'bet' },
+ ],
+ },
+ {
+ query: 'A -> A',
+ others: [
+ { path: 'foo', name: 'beta' },
+ ],
+ },
+ {
+ query: 'A, A',
+ others: [
+ { path: 'foo', name: 'alternate' },
+ ],
+ },
+ {
+ query: 'A, B',
+ others: [
+ { path: 'foo', name: 'other' },
+ ],
+ },
+ {
+ query: 'Other, Other',
+ others: [
+ { path: 'foo', name: 'other' },
+ { path: 'foo', name: 'alternate' },
+ ],
+ },
+ {
+ query: 'generic:T',
+ in_args: [
+ { path: 'foo', name: 'bet' },
+ { path: 'foo', name: 'beta' },
+ { path: 'foo', name: 'other' },
+ { path: 'foo', name: 'alternate' },
+ ],
+ },
+ {
+ query: 'generic:Other',
+ in_args: [
+ { path: 'foo', name: 'bet' },
+ { path: 'foo', name: 'beta' },
+ { path: 'foo', name: 'other' },
+ { path: 'foo', name: 'alternate' },
+ ],
+ },
+ {
+ query: 'trait:Other',
+ in_args: [
+ { path: 'foo', name: 'other' },
+ { path: 'foo', name: 'alternate' },
+ ],
+ },
+ {
+ query: 'Other',
+ in_args: [
+ { path: 'foo', name: 'other' },
+ { path: 'foo', name: 'alternate' },
+ ],
+ },
+ {
+ query: 'trait:T',
+ in_args: [],
+ },
+];
diff --git a/tests/rustdoc-js/type-parameters.rs b/tests/rustdoc-js/type-parameters.rs
new file mode 100644
index 000000000..cda5e2617
--- /dev/null
+++ b/tests/rustdoc-js/type-parameters.rs
@@ -0,0 +1,15 @@
+#![crate_name="foo"]
+
+pub trait Some {}
+impl Some for () {}
+pub trait Other {}
+impl Other for () {}
+
+pub fn alef<T: Some>() -> T { loop {} }
+pub fn alpha() -> impl Some { }
+
+pub fn bet<T, U>(t: T) -> U { loop {} }
+pub fn beta<T>(t: T) -> T {}
+
+pub fn other<T: Other, U: Other>(t: T, u: U) { loop {} }
+pub fn alternate<T: Other>(t: T, u: T) { loop {} }