From c5ee72cb3b0138114e0436aca989e2d8939d107e Mon Sep 17 00:00:00 2001 From: Albert Larsan <74931857+albertlarsan68@users.noreply.github.com> Date: Mon, 9 Jan 2023 16:33:09 +0000 Subject: [PATCH] Add test for issue 106062 --- src/test/ui/mir/issue-106062.rs | 26 ++++++++++++++++++++++++++ src/test/ui/mir/issue-106062.stderr | 16 ++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/test/ui/mir/issue-106062.rs create mode 100644 src/test/ui/mir/issue-106062.stderr diff --git a/src/test/ui/mir/issue-106062.rs b/src/test/ui/mir/issue-106062.rs new file mode 100644 index 00000000000..621ba566ee3 --- /dev/null +++ b/src/test/ui/mir/issue-106062.rs @@ -0,0 +1,26 @@ +// edition:2018 + +use std::{future::Future, marker::PhantomData}; + +fn spawn(future: T) -> PhantomData +where + T: Future, +{ + loop {} +} + +#[derive(Debug)] +struct IncomingServer {} +impl IncomingServer { + async fn connection_handler(handler: impl Sized) -> Result { + //~^ ERROR expected type, found variant `Ok` [E0573] + loop {} + } + async fn spawn(&self, request_handler: impl Sized) { + async move { + spawn(Self::connection_handler(&request_handler)); + }; + } +} + +fn main() {} diff --git a/src/test/ui/mir/issue-106062.stderr b/src/test/ui/mir/issue-106062.stderr new file mode 100644 index 00000000000..2f6524d03e0 --- /dev/null +++ b/src/test/ui/mir/issue-106062.stderr @@ -0,0 +1,16 @@ +error[E0573]: expected type, found variant `Ok` + --> $DIR/issue-106062.rs:15:64 + | +LL | async fn connection_handler(handler: impl Sized) -> Result { + | ^^ not a type + | +help: try using the variant's enum + | +LL | async fn connection_handler(handler: impl Sized) -> Result { + | ~~~~~~~~~~~~~~~~~~~~ +LL | async fn connection_handler(handler: impl Sized) -> Result { + | ~~~~~~~~~~~~~~~~~~~ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0573`.