aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2021-10-25 17:08:55 +0100
committerPhilip Herron <philip.herron@embecosm.com>2021-10-27 10:18:33 +0100
commitb01e62c136b1ebf27894c68669e265e67b941300 (patch)
tree1bfdd180d546c116a3a7b598cacf2db13805ab3e /gcc
parent7dc21da4d05ab19642f60c122e7d58d6372fff0d (diff)
downloadgcc-b01e62c136b1ebf27894c68669e265e67b941300.zip
gcc-b01e62c136b1ebf27894c68669e265e67b941300.tar.gz
gcc-b01e62c136b1ebf27894c68669e265e67b941300.tar.bz2
Add WhereClauseItem::ItemType specifier to differentiate between items
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/hir/tree/rust-hir-item.h18
1 files changed, 18 insertions, 0 deletions
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