https://gcc.gnu.org/g:912785bc966d2c8bc4122d13697ec1c1afa383fe
commit r16-6838-g912785bc966d2c8bc4122d13697ec1c1afa383fe Author: Arthur Cohen <[email protected]> Date: Wed Oct 1 12:10:58 2025 +0200 gccrs: nr: Ignore errors when doing prelude resolution We only want to emit the ones from regular name resolution as otherwise they will be doubled for the user for no good reason. gcc/rust/ChangeLog: * resolve/rust-name-resolution-context.h: Co-authored-by: Owen Avery <[email protected]> Diff: --- gcc/rust/resolve/rust-name-resolution-context.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gcc/rust/resolve/rust-name-resolution-context.h b/gcc/rust/resolve/rust-name-resolution-context.h index 2d1ce3117b57..4284ea8de23a 100644 --- a/gcc/rust/resolve/rust-name-resolution-context.h +++ b/gcc/rust/resolve/rust-name-resolution-context.h @@ -592,25 +592,27 @@ public: // If it fails, switch to std prelude resolution if it exists if (prelude && !resolved) { + std::vector<Error> ignore_errors = {}; + // TODO: Factor this with the above switch (ns) { case Namespace::Values: return values.resolve_path (segments, mode, insert_segment_resolution, - collect_errors, *prelude); + ignore_errors, *prelude); case Namespace::Types: return types.resolve_path (segments, mode, - insert_segment_resolution, - collect_errors, *prelude); + insert_segment_resolution, ignore_errors, + *prelude); case Namespace::Macros: return macros.resolve_path (segments, mode, insert_segment_resolution, - collect_errors, *prelude); + ignore_errors, *prelude); case Namespace::Labels: return labels.resolve_path (segments, mode, insert_segment_resolution, - collect_errors, *prelude); + ignore_errors, *prelude); default: rust_unreachable (); }
