From b01e62c136b1ebf27894c68669e265e67b941300 Mon Sep 17 00:00:00 2001 From: Philip Herron Date: Mon, 25 Oct 2021 17:08:55 +0100 Subject: Add WhereClauseItem::ItemType specifier to differentiate between items --- gcc/rust/hir/tree/rust-hir-item.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gcc/rust/hir') diff --git a/gcc/rust/hir/tree/rust-hir-item.h b/gcc/rust/hir/tree/rust-hir-item.h index 30170a9..de067e6 100644 --- a/gcc/rust/hir/tree/rust-hir-item.h +++ b/gcc/rust/hir/tree/rust-hir-item.h @@ -141,6 +141,12 @@ protected: class WhereClauseItem { public: + enum ItemType + { + LIFETIME, + TYPE_BOUND, + }; + virtual ~WhereClauseItem () {} // Unique pointer custom clone function @@ -155,6 +161,8 @@ public: virtual Analysis::NodeMapping get_mappings () const = 0; + virtual ItemType get_item_type () const = 0; + protected: // Clone function implementation as pure virtual method virtual WhereClauseItem *clone_where_clause_item_impl () const = 0; @@ -190,6 +198,11 @@ public: return mappings; }; + ItemType get_item_type () const override final + { + return WhereClauseItem::ItemType::LIFETIME; + } + protected: // Clone function implementation as (not pure) virtual method LifetimeWhereClauseItem *clone_where_clause_item_impl () const override @@ -269,6 +282,11 @@ public: return mappings; }; + ItemType get_item_type () const override final + { + return WhereClauseItem::ItemType::TYPE_BOUND; + } + protected: // Clone function implementation as (not pure) virtual method TypeBoundWhereClauseItem *clone_where_clause_item_impl () const override -- cgit v1.1