https://gcc.gnu.org/g:af1acc3599c0dcbc96b885bef81786a3d68b386a

commit r15-8756-gaf1acc3599c0dcbc96b885bef81786a3d68b386a
Author: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com>
Date:   Mon Jan 6 15:55:53 2025 +0100

    gccrs: Resolved item type shall be differentiated later
    
    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.pa...@embecosm.com>

Diff:
---
 gcc/rust/typecheck/rust-hir-trait-resolve.cc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/rust/typecheck/rust-hir-trait-resolve.cc 
b/gcc/rust/typecheck/rust-hir-trait-resolve.cc
index 82019328e16a..04af5abf8370 100644
--- a/gcc/rust/typecheck/rust-hir-trait-resolve.cc
+++ b/gcc/rust/typecheck/rust-hir-trait-resolve.cc
@@ -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)

Reply via email to