//@ edition:2018
// #70935: Check if we do not emit snippet
// with newlines which lead complex diagnostics.

use std::future::Future;
use std::marker::PhantomData;

#[derive(Clone)]
struct NotSync(PhantomData<*mut ()>);
unsafe impl Send for NotSync {}

async fn baz<T>(_c: impl FnMut() -> T) where T: Future<Output=()> {
}

fn foo(x: NotSync) -> impl Future + Send {
    //~^ ERROR `*mut ()` cannot be shared between threads safely
    //~| ERROR `*mut ()` cannot be shared between threads safely
    async move {
        baz(|| async {
            foo(x.clone());
        }).await;
    }
}

fn bar(_s: impl Future + Send) {
}

fn main() {
    let x = NotSync(PhantomData);
    bar(foo(x));
}
