[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