aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/hir/tree
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/hir/tree')
-rw-r--r--gcc/rust/hir/tree/rust-hir.cc38
-rw-r--r--gcc/rust/hir/tree/rust-hir.h2
2 files changed, 40 insertions, 0 deletions
diff --git a/gcc/rust/hir/tree/rust-hir.cc b/gcc/rust/hir/tree/rust-hir.cc
index 6290e72..8e0d444 100644
--- a/gcc/rust/hir/tree/rust-hir.cc
+++ b/gcc/rust/hir/tree/rust-hir.cc
@@ -213,6 +213,44 @@ Module::as_string () const
}
std::string
+Item::item_kind_string (Item::ItemKind kind)
+{
+ switch (kind)
+ {
+ case Item::ItemKind::Static:
+ return "static";
+ case Item::ItemKind::Constant:
+ return "constant";
+ case Item::ItemKind::TypeAlias:
+ return "type alias";
+ case Item::ItemKind::Function:
+ return "function";
+ case Item::ItemKind::UseDeclaration:
+ return "use declaration";
+ case Item::ItemKind::ExternBlock:
+ return "extern block";
+ case Item::ItemKind::ExternCrate:
+ return "extern crate";
+ case Item::ItemKind::Struct:
+ return "struct";
+ case Item::ItemKind::Union:
+ return "union";
+ case Item::ItemKind::Enum:
+ return "enum";
+ case Item::ItemKind::EnumItem:
+ return "enum item";
+ case Item::ItemKind::Trait:
+ return "trait";
+ case Item::ItemKind::Impl:
+ return "impl";
+ case Item::ItemKind::Module:
+ return "module";
+ default:
+ rust_unreachable ();
+ }
+}
+
+std::string
StaticItem::as_string () const
{
std::string str = VisItem::as_string ();
diff --git a/gcc/rust/hir/tree/rust-hir.h b/gcc/rust/hir/tree/rust-hir.h
index 8a27161..f8eb22d 100644
--- a/gcc/rust/hir/tree/rust-hir.h
+++ b/gcc/rust/hir/tree/rust-hir.h
@@ -220,6 +220,8 @@ public:
Module,
};
+ static std::string item_kind_string (ItemKind kind);
+
virtual ItemKind get_item_kind () const = 0;
// Unique pointer custom clone function