mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 06:56:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
error: item does not constrain `A::{opaque#0}`, but has it in its signature
 | 
						|
  --> $DIR/two_tait_defining_each_other2.rs:11:4
 | 
						|
   |
 | 
						|
LL | fn muh(x: A) -> B {
 | 
						|
   |    ^^^
 | 
						|
   |
 | 
						|
   = note: consider moving the opaque type's declaration and defining uses into a separate module
 | 
						|
note: this opaque type is in the signature
 | 
						|
  --> $DIR/two_tait_defining_each_other2.rs:6:10
 | 
						|
   |
 | 
						|
LL | type A = impl Foo;
 | 
						|
   |          ^^^^^^^^
 | 
						|
 | 
						|
error: unconstrained opaque type
 | 
						|
  --> $DIR/two_tait_defining_each_other2.rs:6:10
 | 
						|
   |
 | 
						|
LL | type A = impl Foo;
 | 
						|
   |          ^^^^^^^^
 | 
						|
   |
 | 
						|
   = note: `A` must be used in combination with a concrete type within the same module
 | 
						|
 | 
						|
error: opaque type's hidden type cannot be another opaque type from the same scope
 | 
						|
  --> $DIR/two_tait_defining_each_other2.rs:14:5
 | 
						|
   |
 | 
						|
LL |     x // B's hidden type is A (opaquely)
 | 
						|
   |     ^ one of the two opaque types used here has to be outside its defining scope
 | 
						|
   |
 | 
						|
note: opaque type whose hidden type is being assigned
 | 
						|
  --> $DIR/two_tait_defining_each_other2.rs:7:10
 | 
						|
   |
 | 
						|
LL | type B = impl Foo;
 | 
						|
   |          ^^^^^^^^
 | 
						|
note: opaque type being used as hidden type
 | 
						|
  --> $DIR/two_tait_defining_each_other2.rs:6:10
 | 
						|
   |
 | 
						|
LL | type A = impl Foo;
 | 
						|
   |          ^^^^^^^^
 | 
						|
 | 
						|
error: aborting due to 3 previous errors
 | 
						|
 |