mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 04:57:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			790 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			790 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //@ revisions: rpass1 rpass2
 | |
| 
 | |
| pub fn foo() {
 | |
|     bar();
 | |
|     baz::<()>();
 | |
| }
 | |
| 
 | |
| fn bar()
 | |
| where
 | |
|     <() as Table>::AllColumns:,
 | |
| {
 | |
| }
 | |
| 
 | |
| fn baz<W>()
 | |
| where
 | |
|     W: AsQuery,
 | |
|     <W as AsQuery>::Query:,
 | |
| {
 | |
| }
 | |
| 
 | |
| trait AsQuery {
 | |
|     type Query;
 | |
| }
 | |
| 
 | |
| trait UnimplementedTrait {}
 | |
| 
 | |
| impl<T> AsQuery for T
 | |
| where
 | |
|     T: UnimplementedTrait,
 | |
| {
 | |
|     type Query = ();
 | |
| }
 | |
| 
 | |
| struct Wrapper<Expr>(Expr);
 | |
| 
 | |
| impl<Ret> AsQuery for Wrapper<Ret> {
 | |
|     type Query = ();
 | |
| }
 | |
| 
 | |
| impl AsQuery for ()
 | |
| where
 | |
|     Wrapper<<() as Table>::AllColumns>: AsQuery,
 | |
| {
 | |
|     type Query = ();
 | |
| }
 | |
| 
 | |
| trait Table {
 | |
|     type AllColumns;
 | |
| }
 | |
| 
 | |
| #[cfg(rpass1)]
 | |
| impl Table for () {
 | |
|     type AllColumns = Checksum1;
 | |
| }
 | |
| #[cfg(rpass1)]
 | |
| struct Checksum1;
 | |
| 
 | |
| #[cfg(rpass2)]
 | |
| impl Table for () {
 | |
|     type AllColumns = Checksum2;
 | |
| }
 | |
| #[cfg(rpass2)]
 | |
| struct Checksum2;
 | |
| 
 | |
| fn main() {}
 | 
