summaryrefslogtreecommitdiff
path: root/src/hir/visitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hir/visitor.cpp')
-rw-r--r--src/hir/visitor.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/hir/visitor.cpp b/src/hir/visitor.cpp
index 88b1be22..05e99734 100644
--- a/src/hir/visitor.cpp
+++ b/src/hir/visitor.cpp
@@ -1,4 +1,10 @@
-
+/*
+ * MRustC - Rust Compiler
+ * - By John Hodge (Mutabah/thePowersGang)
+ *
+ * hir/visitor.cpp
+ * - HIR Visitor default implementation
+ */
#include <hir/hir.hpp>
#include <hir/visitor.hpp>
@@ -104,7 +110,7 @@ void ::HIR::Visitor::visit_type_impl(::HIR::TypeImpl& impl)
}
void ::HIR::Visitor::visit_trait_impl(const ::HIR::SimplePath& trait_path, ::HIR::TraitImpl& impl)
{
- ::HIR::ItemPath p( impl.m_type, trait_path );
+ ::HIR::ItemPath p( impl.m_type, trait_path, impl.m_trait_args );
TRACE_FUNCTION_F(p);
this->visit_params(impl.m_params);
// - HACK: Create a generic path to visit (so that proper checks are performed)
@@ -282,7 +288,9 @@ void ::HIR::Visitor::visit_type(::HIR::TypeRef& ty)
(Generic,
),
(TraitObject,
- this->visit_trait_path(e.m_trait);
+ if( e.m_trait.m_path != ::HIR::SimplePath() ) {
+ this->visit_trait_path(e.m_trait);
+ }
for(auto& trait : e.m_markers) {
this->visit_generic_path(trait, ::HIR::Visitor::PathContext::TYPE);
}