From 7b0dfc5a859d8fb2cc940764d0c8106c87b5f05b Mon Sep 17 00:00:00 2001 From: John Hodge Date: Fri, 25 Nov 2016 09:14:21 +0800 Subject: HIR Bind - Visit all generic paths --- src/hir_conv/bind.cpp | 5 +++++ src/hir_typeck/helpers.cpp | 3 +++ 2 files changed, 8 insertions(+) (limited to 'src') diff --git a/src/hir_conv/bind.cpp b/src/hir_conv/bind.cpp index 8217aa09..7a1049e6 100644 --- a/src/hir_conv/bind.cpp +++ b/src/hir_conv/bind.cpp @@ -418,6 +418,11 @@ namespace { upper_visitor(uv) {} + void visit_generic_path(::HIR::Visitor::PathContext pc, ::HIR::GenericPath& p) + { + upper_visitor.visit_generic_path(p, pc); + } + void visit_node_ptr(::HIR::ExprNodeP& node_ptr) override { upper_visitor.visit_type(node_ptr->m_res_type); diff --git a/src/hir_typeck/helpers.cpp b/src/hir_typeck/helpers.cpp index d349ef23..a9577835 100644 --- a/src/hir_typeck/helpers.cpp +++ b/src/hir_typeck/helpers.cpp @@ -3179,9 +3179,11 @@ unsigned int TraitResolution::autoderef_find_method(const Span& sp, const HIR::t // TODO: Update `unconditional_allow_move` based on the current type. const auto& ty = this->m_ivars.get_type(*current_ty); if( ty.m_data.is_Infer() ) { + DEBUG("- Ivar, pausing"); return ~0u; } if(ty.m_data.is_Path() && ty.m_data.as_Path().binding.is_Unbound()) { + DEBUG("- Unbound type path " << ty << ", pausing"); return ~0u; } @@ -3231,6 +3233,7 @@ unsigned int TraitResolution::autoderef_find_method(const Span& sp, const HIR::t // If there are ivars within the type, don't error (yet) if( this->m_ivars.type_contains_ivars(top_ty) ) { + DEBUG("- Contains ivars, pausing"); return ~0u; } -- cgit v1.2.3