diff options
Diffstat (limited to 'gcc/rust/hir/tree')
-rw-r--r-- | gcc/rust/hir/tree/rust-hir.cc | 38 | ||||
-rw-r--r-- | gcc/rust/hir/tree/rust-hir.h | 2 |
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 |