mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 15:05:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
error[E0053]: method `foo` has an incompatible type for trait
 | 
						|
  --> $DIR/dont-project-to-specializable-projection.rs:14:5
 | 
						|
   |
 | 
						|
LL |     default async fn foo(_: T) -> &'static str {
 | 
						|
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected associated type, found future
 | 
						|
   |
 | 
						|
note: type in trait
 | 
						|
  --> $DIR/dont-project-to-specializable-projection.rs:10:5
 | 
						|
   |
 | 
						|
LL |     async fn foo(_: T) -> &'static str;
 | 
						|
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | 
						|
   = note: expected signature `fn(_) -> impl Future<Output = &'static str>`
 | 
						|
              found signature `fn(_) -> impl Future<Output = &'static str>`
 | 
						|
 | 
						|
error: async associated function in trait cannot be specialized
 | 
						|
  --> $DIR/dont-project-to-specializable-projection.rs:14:5
 | 
						|
   |
 | 
						|
LL |     default async fn foo(_: T) -> &'static str {
 | 
						|
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | 
						|
   |
 | 
						|
   = note: specialization behaves in inconsistent and surprising ways with async functions in traits, and for now is disallowed
 | 
						|
 | 
						|
error[E0599]: no method named `poll` found for struct `Pin<&mut impl Future<Output = ()>>` in the current scope
 | 
						|
  --> $DIR/dont-project-to-specializable-projection.rs:49:28
 | 
						|
   |
 | 
						|
LL |         match fut.as_mut().poll(ctx) {
 | 
						|
   |                            ^^^^ method not found in `Pin<&mut impl Future<Output = ()>>`
 | 
						|
  --> $SRC_DIR/core/src/future/future.rs:LL:COL
 | 
						|
   |
 | 
						|
   = note: the method is available for `Pin<&mut impl Future<Output = ()>>` here
 | 
						|
   |
 | 
						|
   = help: items from traits can only be used if the trait is in scope
 | 
						|
help: trait `Future` which provides `poll` is implemented but not in scope; perhaps you want to import it
 | 
						|
   |
 | 
						|
LL + use std::future::Future;
 | 
						|
   |
 | 
						|
 | 
						|
error: aborting due to 3 previous errors
 | 
						|
 | 
						|
Some errors have detailed explanations: E0053, E0599.
 | 
						|
For more information about an error, try `rustc --explain E0053`.
 |