mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-28 11:38:01 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			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
 | |
| }
 | 
