[gcc r14-7515] gccrs: Add get_defid helper to TypeCheckContextItem

Arthur Cohen cohenarthur@gcc.gnu.org
Tue Jan 16 17:40:35 GMT 2024


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

commit r14-7515-ge3a2f3b1931b10afb43893b476e7e27b8ade007e
Author: Philip Herron <herron.philip@googlemail.com>
Date:   Mon Apr 17 21:50:54 2023 +0100

    gccrs: Add get_defid helper to TypeCheckContextItem
    
    gcc/rust/ChangeLog:
    
            * typecheck/rust-hir-type-check.h: Add prototype
            * typecheck/rust-typecheck-context.cc (TypeCheckContextItem::get_defid): implementation
    
    Signed-off-by: Philip Herron <herron.philip@googlemail.com>

Diff:
---
 gcc/rust/typecheck/rust-hir-type-check.h     |  2 ++
 gcc/rust/typecheck/rust-typecheck-context.cc | 18 ++++++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/gcc/rust/typecheck/rust-hir-type-check.h b/gcc/rust/typecheck/rust-hir-type-check.h
index 10aa3b32a9e..3f43bc89d6f 100644
--- a/gcc/rust/typecheck/rust-hir-type-check.h
+++ b/gcc/rust/typecheck/rust-hir-type-check.h
@@ -51,6 +51,8 @@ public:
 
   TyTy::FnType *get_context_type ();
 
+  DefId get_defid () const;
+
 private:
   union Item
   {
diff --git a/gcc/rust/typecheck/rust-typecheck-context.cc b/gcc/rust/typecheck/rust-typecheck-context.cc
index dcf06098cc5..7c0dc06372d 100644
--- a/gcc/rust/typecheck/rust-typecheck-context.cc
+++ b/gcc/rust/typecheck/rust-typecheck-context.cc
@@ -576,5 +576,23 @@ TypeCheckContextItem::get_context_type ()
   return static_cast<TyTy::FnType *> (lookup);
 }
 
+DefId
+TypeCheckContextItem::get_defid () const
+{
+  switch (get_type ())
+    {
+    case ITEM:
+      return item.item->get_mappings ().get_defid ();
+
+    case IMPL_ITEM:
+      return item.impl_item.second->get_mappings ().get_defid ();
+
+    case TRAIT_ITEM:
+      return item.trait_item->get_mappings ().get_defid ();
+    }
+
+  return UNKNOWN_DEFID;
+}
+
 } // namespace Resolver
 } // namespace Rust


More information about the Gcc-cvs mailing list