summaryrefslogtreecommitdiff
path: root/src/hir/visitor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hir/visitor.hpp')
-rw-r--r--src/hir/visitor.hpp57
1 files changed, 8 insertions, 49 deletions
diff --git a/src/hir/visitor.hpp b/src/hir/visitor.hpp
index 844603df..baf0c4a5 100644
--- a/src/hir/visitor.hpp
+++ b/src/hir/visitor.hpp
@@ -6,47 +6,6 @@
namespace HIR {
-class PathChain
-{
- const PathChain* prev;
-public:
- const ::std::string& name;
-
- PathChain(const PathChain& prev, const ::std::string& name):
- prev(&prev),
- name(name)
- {}
- PathChain(const ::std::string& name):
- prev(nullptr),
- name(name)
- {}
-
- PathChain operator+(const ::std::string& name) const {
- return PathChain(*this, name);
- }
-
- ::HIR::SimplePath to_path() const {
- if( prev ) {
- return prev->to_path() + name;
- }
- else {
- if( name != "" ) {
- return ::HIR::SimplePath("", {name});
- }
- else {
- return ::HIR::SimplePath("", {});
- }
- }
- }
-
- friend ::std::ostream& operator<<(::std::ostream& os, const PathChain& x) {
- if( x.prev )
- os << *x.prev << "::";
- os << x.name;
- return os;
- }
-};
-
class Visitor
{
public:
@@ -54,21 +13,21 @@ public:
virtual void visit_crate(::HIR::Crate& crate);
- virtual void visit_module(PathChain p, ::HIR::Module& mod);
+ virtual void visit_module(ItemPath p, ::HIR::Module& mod);
virtual void visit_type_impl(::HIR::TypeImpl& impl);
virtual void visit_trait_impl(const ::HIR::SimplePath& trait_path, ::HIR::TraitImpl& impl);
virtual void visit_marker_impl(const ::HIR::SimplePath& trait_path, ::HIR::MarkerImpl& impl);
// - Type Items
- virtual void visit_type_alias(PathChain p, ::HIR::TypeAlias& item);
- virtual void visit_trait(PathChain p, ::HIR::Trait& item);
- virtual void visit_struct(PathChain p, ::HIR::Struct& item);
- virtual void visit_enum(PathChain p, ::HIR::Enum& item);
+ virtual void visit_type_alias(ItemPath p, ::HIR::TypeAlias& item);
+ virtual void visit_trait(ItemPath p, ::HIR::Trait& item);
+ virtual void visit_struct(ItemPath p, ::HIR::Struct& item);
+ virtual void visit_enum(ItemPath p, ::HIR::Enum& item);
// - Value Items
- virtual void visit_function(PathChain p, ::HIR::Function& item);
- virtual void visit_static(PathChain p, ::HIR::Static& item);
- virtual void visit_constant(PathChain p, ::HIR::Constant& item);
+ virtual void visit_function(ItemPath p, ::HIR::Function& item);
+ virtual void visit_static(ItemPath p, ::HIR::Static& item);
+ virtual void visit_constant(ItemPath p, ::HIR::Constant& item);
// - Misc
virtual void visit_params(::HIR::GenericParams& params);