]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Resolved item type shall be differentiated later
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Mon, 6 Jan 2025 14:55:53 +0000 (15:55 +0100)
committerArthur Cohen <arthur.cohen@embecosm.com>
Mon, 24 Mar 2025 12:06:57 +0000 (13:06 +0100)
We need to query all namespaces and error out at a later stage if the
retrieved item is wrong.

gcc/rust/ChangeLog:

* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait):
Query all namespaces.

Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
gcc/rust/typecheck/rust-hir-trait-resolve.cc

index 82019328e16ad93946d27babb70cb64b309dca84..04af5abf8370439d112ecb8833f6ac218cdb0049 100644 (file)
@@ -127,8 +127,10 @@ TraitResolver::resolve_path_to_trait (const HIR::TypePath &path,
     }
   else
     {
-      ok = resolver->lookup_resolved_type (path.get_mappings ().get_nodeid (),
-                                          &ref);
+      auto path_nodeid = path.get_mappings ().get_nodeid ();
+      ok = resolver->lookup_resolved_type (path_nodeid, &ref)
+          || resolver->lookup_resolved_name (path_nodeid, &ref)
+          || resolver->lookup_resolved_macro (path_nodeid, &ref);
     }
 
   if (!ok)