[committed,74/88] gccrs: Add new virtual function HIR::ImplItem::get_impl_item_name

Message ID 20230405140411.3016563-75-arthur.cohen@embecosm.com
State Accepted
Headers
Series [committed,01/88] gccrs: fatal_error_flag: Fix typo in error message |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Arthur Cohen April 5, 2023, 2:03 p.m. UTC
  From: Philip Herron <herron.philip@googlemail.com>

Signed-off-by: Philip Herron <herron.philip@googlemail.com>

gcc/rust/ChangeLog:

	* hir/tree/rust-hir-item.h: implement virtual function
	* hir/tree/rust-hir.h: add virtual function
---
 gcc/rust/hir/tree/rust-hir-item.h | 17 ++++++++++++++++-
 gcc/rust/hir/tree/rust-hir.h      |  2 ++
 2 files changed, 18 insertions(+), 1 deletion(-)
  

Patch

diff --git a/gcc/rust/hir/tree/rust-hir-item.h b/gcc/rust/hir/tree/rust-hir-item.h
index f7bf1f879c8..03e1f71abb5 100644
--- a/gcc/rust/hir/tree/rust-hir-item.h
+++ b/gcc/rust/hir/tree/rust-hir-item.h
@@ -1226,6 +1226,11 @@  public:
 
   SelfParam &get_self_param () { return self; }
 
+  std::string get_impl_item_name () const override final
+  {
+    return get_function_name ();
+  }
+
 protected:
   /* Use covariance to implement clone function as returning this object
    * rather than base */
@@ -1345,6 +1350,11 @@  public:
     return get_mappings ();
   };
 
+  std::string get_impl_item_name () const override final
+  {
+    return get_new_type_name ();
+  }
+
 protected:
   /* Use covariance to implement clone function as returning this object
    * rather than base */
@@ -2116,7 +2126,7 @@  public:
 
   Expr *get_expr () { return const_expr.get (); }
 
-  std::string get_identifier () { return identifier; }
+  std::string get_identifier () const { return identifier; }
 
   Analysis::NodeMapping get_impl_mappings () const override
   {
@@ -2130,6 +2140,11 @@  public:
 
   ItemKind get_item_kind () const override { return ItemKind::Constant; }
 
+  std::string get_impl_item_name () const override final
+  {
+    return get_identifier ();
+  }
+
 protected:
   /* Use covariance to implement clone function as returning this object
    * rather than base */
diff --git a/gcc/rust/hir/tree/rust-hir.h b/gcc/rust/hir/tree/rust-hir.h
index 314aafb32d3..28f1f21a6bb 100644
--- a/gcc/rust/hir/tree/rust-hir.h
+++ b/gcc/rust/hir/tree/rust-hir.h
@@ -839,6 +839,8 @@  public:
 
   virtual ImplItemType get_impl_item_type () const = 0;
 
+  virtual std::string get_impl_item_name () const = 0;
+
 protected:
   // Clone function implementation as pure virtual method
   virtual ImplItem *clone_inherent_impl_item_impl () const = 0;