summaryrefslogtreecommitdiffstats
path: root/tests/rustdoc-js/generics.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/rustdoc-js/generics.rs')
-rw-r--r--tests/rustdoc-js/generics.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/rustdoc-js/generics.rs b/tests/rustdoc-js/generics.rs
new file mode 100644
index 000000000..055c51c7e
--- /dev/null
+++ b/tests/rustdoc-js/generics.rs
@@ -0,0 +1,28 @@
+pub struct P;
+pub struct Q;
+pub struct R<T>(T);
+
+// returns test
+pub fn alef() -> R<P> { loop {} }
+pub fn bet() -> R<Q> { loop {} }
+
+// in_args test
+pub fn alpha(_x: R<P>) { loop {} }
+pub fn beta(_x: R<Q>) { loop {} }
+
+// test case with multiple appearances of the same type
+pub struct ExtraCreditStructMulti<T, U> { t: T, u: U }
+pub struct ExtraCreditInnerMulti {}
+pub fn extracreditlabhomework(
+ _param: ExtraCreditStructMulti<ExtraCreditInnerMulti, ExtraCreditInnerMulti>
+) { loop {} }
+pub fn redherringmatchforextracredit(
+ _param: ExtraCreditStructMulti<ExtraCreditInnerMulti, ()>
+) { loop {} }
+
+pub trait TraitCat {}
+pub trait TraitDog {}
+
+pub fn gamma<T: TraitCat + TraitDog>(t: T) {}
+
+pub fn super_soup(s: Result<String, i32>) -> Result<String, i32> { s }