diff options
author | Owen Avery <powerboat9.gamer@gmail.com> | 2023-03-03 20:05:59 -0500 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2023-03-04 21:26:59 +0000 |
commit | ae91a0a3f2b44e5b011d3742a71c3c5030558bc8 (patch) | |
tree | 65b8ac0a3a2d2f789d2dbc46dedff16e83fd4bd2 | |
parent | a4aeea9a90b3ed23e154d325b0224d788a89f609 (diff) | |
download | gcc-ae91a0a3f2b44e5b011d3742a71c3c5030558bc8.zip gcc-ae91a0a3f2b44e5b011d3742a71c3c5030558bc8.tar.gz gcc-ae91a0a3f2b44e5b011d3742a71c3c5030558bc8.tar.bz2 |
Resolve closure parameters without given type
gcc/rust/ChangeLog:
* resolve/rust-early-name-resolver.cc
(EarlyNameResolver::visit):
Check for closure parameter without given type.
gcc/testsuite/ChangeLog:
* rust/compile/closure_no_type_anno.rs: Extend test.
Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
-rw-r--r-- | gcc/rust/resolve/rust-early-name-resolver.cc | 3 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/closure_no_type_anno.rs | 9 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/rust/resolve/rust-early-name-resolver.cc b/gcc/rust/resolve/rust-early-name-resolver.cc index 10f7626..6985228 100644 --- a/gcc/rust/resolve/rust-early-name-resolver.cc +++ b/gcc/rust/resolve/rust-early-name-resolver.cc @@ -326,7 +326,8 @@ EarlyNameResolver::visit (AST::ClosureExprInner &expr) expr.get_definition_expr ()->accept_vis (*this); for (auto ¶m : expr.get_params ()) - param.get_type ()->accept_vis (*this); + if (param.has_type_given ()) + param.get_type ()->accept_vis (*this); } void diff --git a/gcc/testsuite/rust/compile/closure_no_type_anno.rs b/gcc/testsuite/rust/compile/closure_no_type_anno.rs index beade76..ff2c8b8 100644 --- a/gcc/testsuite/rust/compile/closure_no_type_anno.rs +++ b/gcc/testsuite/rust/compile/closure_no_type_anno.rs @@ -1,5 +1,10 @@ -// { dg-additional-options "-fsyntax-only" } +#[lang = "fn_once"] +trait FnOnce<Args> { + type Output; + + fn call_once(self, args: Args) -> Self::Output; +} pub fn foo() { - let a = |_| 15; + let a = |_| 15; // { dg-error "type annotations needed" } } |