From 0cd26bd7004cfa9c2262ff8020222a053b93f37f Mon Sep 17 00:00:00 2001 From: Kushal Pal Date: Sat, 6 Jan 2024 11:29:14 +0530 Subject: [PATCH] Handle `async` keyword for regular implementations Fixes #2788 gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_inherent_impl_item): Added switch-case for ASYNC token. gcc/testsuite/ChangeLog: * rust/compile/issue-2788.rs: New test. Signed-off-by: Kushal Pal --- gcc/rust/parse/rust-parse-impl.h | 1 + gcc/testsuite/rust/compile/issue-2788.rs | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 gcc/testsuite/rust/compile/issue-2788.rs diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h index 54885221e18d..bb00460bd324 100644 --- a/gcc/rust/parse/rust-parse-impl.h +++ b/gcc/rust/parse/rust-parse-impl.h @@ -5600,6 +5600,7 @@ Parser::parse_inherent_impl_item () return nullptr; } } + case ASYNC: case EXTERN_KW: case UNSAFE: case FN_KW: diff --git a/gcc/testsuite/rust/compile/issue-2788.rs b/gcc/testsuite/rust/compile/issue-2788.rs new file mode 100644 index 000000000000..b3828fca6cb0 --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-2788.rs @@ -0,0 +1,10 @@ +// { dg-additional-options "-frust-compile-until=lowering" } +struct Foo { + arg_1: u32, + arg_2: i32, +} + +impl Foo { + async fn asynchronous_function_1(&self) {} + async fn asynchronous_function_2() {} +} -- 2.43.5