44 lines
802 B
Rust
44 lines
802 B
Rust
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
|
|
}
|