mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-03 22:49:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
error[E0277]: `*mut ()` cannot be shared between threads safely
 | 
						|
  --> $DIR/issue-70935-complex-spans.rs:15:23
 | 
						|
   |
 | 
						|
LL | fn foo(x: NotSync) -> impl Future + Send {
 | 
						|
   |                       ^^^^^^^^^^^^^^^^^^ `*mut ()` cannot be shared between threads safely
 | 
						|
   |
 | 
						|
   = help: within `NotSync`, the trait `Sync` is not implemented for `*mut ()`, which is required by `{async block@$DIR/issue-70935-complex-spans.rs:18:5: 22:6}: Send`
 | 
						|
note: required because it appears within the type `PhantomData<*mut ()>`
 | 
						|
  --> $SRC_DIR/core/src/marker.rs:LL:COL
 | 
						|
note: required because it appears within the type `NotSync`
 | 
						|
  --> $DIR/issue-70935-complex-spans.rs:9:8
 | 
						|
   |
 | 
						|
LL | struct NotSync(PhantomData<*mut ()>);
 | 
						|
   |        ^^^^^^^
 | 
						|
   = note: required for `&NotSync` to implement `Send`
 | 
						|
note: required because it's used within this closure
 | 
						|
  --> $DIR/issue-70935-complex-spans.rs:19:13
 | 
						|
   |
 | 
						|
LL |         baz(|| async {
 | 
						|
   |             ^^
 | 
						|
note: required because it's used within this `async` fn body
 | 
						|
  --> $DIR/issue-70935-complex-spans.rs:12:67
 | 
						|
   |
 | 
						|
LL |   async fn baz<T>(_c: impl FnMut() -> T) where T: Future<Output=()> {
 | 
						|
   |  ___________________________________________________________________^
 | 
						|
LL | | }
 | 
						|
   | |_^
 | 
						|
note: required because it's used within this `async` block
 | 
						|
  --> $DIR/issue-70935-complex-spans.rs:18:5
 | 
						|
   |
 | 
						|
LL | /     async move {
 | 
						|
LL | |         baz(|| async {
 | 
						|
LL | |             foo(x.clone());
 | 
						|
LL | |         }).await;
 | 
						|
LL | |     }
 | 
						|
   | |_____^
 | 
						|
 | 
						|
error[E0277]: `*mut ()` cannot be shared between threads safely
 | 
						|
  --> $DIR/issue-70935-complex-spans.rs:15:23
 | 
						|
   |
 | 
						|
LL | fn foo(x: NotSync) -> impl Future + Send {
 | 
						|
   |                       ^^^^^^^^^^^^^^^^^^ `*mut ()` cannot be shared between threads safely
 | 
						|
   |
 | 
						|
   = help: within `NotSync`, the trait `Sync` is not implemented for `*mut ()`, which is required by `{async block@$DIR/issue-70935-complex-spans.rs:18:5: 22:6}: Send`
 | 
						|
note: required because it appears within the type `PhantomData<*mut ()>`
 | 
						|
  --> $SRC_DIR/core/src/marker.rs:LL:COL
 | 
						|
note: required because it appears within the type `NotSync`
 | 
						|
  --> $DIR/issue-70935-complex-spans.rs:9:8
 | 
						|
   |
 | 
						|
LL | struct NotSync(PhantomData<*mut ()>);
 | 
						|
   |        ^^^^^^^
 | 
						|
   = note: required for `&NotSync` to implement `Send`
 | 
						|
note: required because it's used within this closure
 | 
						|
  --> $DIR/issue-70935-complex-spans.rs:19:13
 | 
						|
   |
 | 
						|
LL |         baz(|| async {
 | 
						|
   |             ^^
 | 
						|
note: required because it's used within this `async` fn body
 | 
						|
  --> $DIR/issue-70935-complex-spans.rs:12:67
 | 
						|
   |
 | 
						|
LL |   async fn baz<T>(_c: impl FnMut() -> T) where T: Future<Output=()> {
 | 
						|
   |  ___________________________________________________________________^
 | 
						|
LL | | }
 | 
						|
   | |_^
 | 
						|
note: required because it's used within this `async` block
 | 
						|
  --> $DIR/issue-70935-complex-spans.rs:18:5
 | 
						|
   |
 | 
						|
LL | /     async move {
 | 
						|
LL | |         baz(|| async {
 | 
						|
LL | |             foo(x.clone());
 | 
						|
LL | |         }).await;
 | 
						|
LL | |     }
 | 
						|
   | |_____^
 | 
						|
   = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
 | 
						|
 | 
						|
error: aborting due to 2 previous errors
 | 
						|
 | 
						|
For more information about this error, try `rustc --explain E0277`.
 |