diff options
author | Philip Herron <herron.philip@googlemail.com> | 2023-04-17 21:50:54 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-01-16 18:34:12 +0100 |
commit | e3a2f3b1931b10afb43893b476e7e27b8ade007e (patch) | |
tree | 94cbdfd8d42f201bf440455e0375f8e7458c1f4d /gcc/rust | |
parent | 8e8c56392edb2cdf7d61672dda609bbb6b5941e2 (diff) | |
download | gcc-e3a2f3b1931b10afb43893b476e7e27b8ade007e.zip gcc-e3a2f3b1931b10afb43893b476e7e27b8ade007e.tar.gz gcc-e3a2f3b1931b10afb43893b476e7e27b8ade007e.tar.bz2 |
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>
Diffstat (limited to 'gcc/rust')
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check.h | 2 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-typecheck-context.cc | 18 |
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/rust/typecheck/rust-hir-type-check.h b/gcc/rust/typecheck/rust-hir-type-check.h index 10aa3b3..3f43bc8 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 dcf06098..7c0dc06 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 |