| 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 | |
| } |