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 ();
          }

Reply via email to