https://gcc.gnu.org/g:68af48783006d7c51371b0e8634e82ef0256e4ab
commit r15-8388-g68af48783006d7c51371b0e8634e82ef0256e4ab Author: Arthur Cohen <arthur.co...@embecosm.com> Date: Wed Mar 27 17:20:15 2024 +0100 gccrs: nr2.0: default-visitor: Conditionally visit type in self parameters. This could trigger an assertions as `get_type` on `SelfParam` asserts that the self param does have a given type, which is not always the case. gcc/rust/ChangeLog: * resolve/rust-default-resolver.cc (DefaultResolver::visit): Do not visit self's type if it does not have one. Diff: --- gcc/rust/resolve/rust-default-resolver.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/rust/resolve/rust-default-resolver.cc b/gcc/rust/resolve/rust-default-resolver.cc index 89e7e39f5bb8..b2cdc5f52d2a 100644 --- a/gcc/rust/resolve/rust-default-resolver.cc +++ b/gcc/rust/resolve/rust-default-resolver.cc @@ -68,7 +68,10 @@ DefaultResolver::visit (AST::Function &function) else if (p->is_self ()) { auto ¶m = static_cast<AST::SelfParam &> (*p); - param.get_type ().accept_vis (*this); + + if (param.has_type ()) + param.get_type ().accept_vis (*this); + param.get_lifetime ().accept_vis (*this); } else