]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: nr: Ignore errors when doing prelude resolution
authorArthur Cohen <arthur.cohen@embecosm.com>
Wed, 1 Oct 2025 10:10:58 +0000 (12:10 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Fri, 16 Jan 2026 16:32:06 +0000 (17:32 +0100)
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 <powerboat9.gamer@gmail.com>
gcc/rust/resolve/rust-name-resolution-context.h

index 2d1ce3117b574976c95dace847ca3efbf6c83c39..4284ea8de23a415e74dc14f92876a64a71eed512 100644 (file)
@@ -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 ();
          }