From de1ebbb0a7d4c9da339e52dd439b53f3cfa883e5 Mon Sep 17 00:00:00 2001 From: Bastian Kauschke Date: Tue, 10 Nov 2020 10:31:33 +0100 Subject: [PATCH] const param in async --- .../ui/const-generics/const-param-in-async.rs | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/test/ui/const-generics/const-param-in-async.rs diff --git a/src/test/ui/const-generics/const-param-in-async.rs b/src/test/ui/const-generics/const-param-in-async.rs new file mode 100644 index 000000000000..e8601985287b --- /dev/null +++ b/src/test/ui/const-generics/const-param-in-async.rs @@ -0,0 +1,35 @@ +// edition:2018 +// check-pass +// revisions: full min +#![cfg_attr(full, feature(const_generics))] +#![cfg_attr(full, allow(incomplete_features))] +#![cfg_attr(min, feature(min_const_generics))] + +async fn foo(arg: [u8; N]) -> usize { arg.len() } + +async fn bar() -> [u8; N] { + [0; N] +} + +trait Trait { + fn fynn(&self) -> usize; +} +impl Trait for [u8; N] { + fn fynn(&self) -> usize { + N + } +} +async fn baz() -> impl Trait { + [0; N] +} + +async fn biz(v: impl Trait) -> usize { + v.fynn() +} + +async fn user() { + let _ = foo::(bar().await).await; + let _ = biz(baz::().await).await; +} + +fn main() { }