diff options
-rw-r--r-- | src/hir_conv/bind.cpp | 8 | ||||
-rw-r--r-- | src/hir_typeck/helpers.cpp | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/hir_conv/bind.cpp b/src/hir_conv/bind.cpp index 576941ca..34c93930 100644 --- a/src/hir_conv/bind.cpp +++ b/src/hir_conv/bind.cpp @@ -339,10 +339,9 @@ namespace { } void visit_type(::HIR::TypeRef& ty) override { + //TRACE_FUNCTION_F(ty); static Span _sp = Span(); const Span& sp = _sp; - - ::HIR::Visitor::visit_type(ty); TU_IFLET(::HIR::TypeRef::Data, ty.m_data, Path, e, TU_MATCH( ::HIR::Path::Data, (e.path.m_data), (pe), @@ -355,10 +354,12 @@ namespace { (Struct, fix_param_count(sp, pe, e3.m_params, pe.m_params); e.binding = ::HIR::TypeRef::TypePathBinding::make_Struct(&e3); + DEBUG("- " << ty); ), (Enum, fix_param_count(sp, pe, e3.m_params, pe.m_params); e.binding = ::HIR::TypeRef::TypePathBinding::make_Enum(&e3); + DEBUG("- " << ty); ), (Trait, ty.m_data = ::HIR::TypeRef::Data::make_TraitObject({ ::HIR::TraitPath { mv$(pe), {}, {} }, {}, {} }); @@ -390,8 +391,9 @@ namespace { } ) ) - DEBUG(ty); ) + + ::HIR::Visitor::visit_type(ty); } void visit_expr(::HIR::ExprPtr& expr) override diff --git a/src/hir_typeck/helpers.cpp b/src/hir_typeck/helpers.cpp index e27d2b00..313d6269 100644 --- a/src/hir_typeck/helpers.cpp +++ b/src/hir_typeck/helpers.cpp @@ -2194,6 +2194,7 @@ bool TraitResolution::find_trait_impls_crate(const Span& sp, for(const auto& fld : se) { const auto& fld_ty_mono = monomorph_get(fld.ent); + DEBUG("Struct::Tuple " << fld_ty_mono); res &= type_impls_trait(fld_ty_mono); if( res == ::HIR::Compare::Unequal ) return ::HIR::Compare::Unequal; @@ -2203,6 +2204,7 @@ bool TraitResolution::find_trait_impls_crate(const Span& sp, for(const auto& fld : se) { const auto& fld_ty_mono = monomorph_get(fld.second.ent); + DEBUG("Struct::Named '" << fld.first << "' " << fld_ty_mono); res &= type_impls_trait(fld_ty_mono); if( res == ::HIR::Compare::Unequal ) @@ -2225,6 +2227,7 @@ bool TraitResolution::find_trait_impls_crate(const Span& sp, for(const auto& fld : ve) { const auto& fld_ty_mono = monomorph_get(fld.ent); + DEBUG("Enum '" << var.first << "'::Tuple " << fld_ty_mono); res &= type_impls_trait(fld_ty_mono); if( res == ::HIR::Compare::Unequal ) return ::HIR::Compare::Unequal; @@ -2234,6 +2237,7 @@ bool TraitResolution::find_trait_impls_crate(const Span& sp, for(const auto& fld : ve) { const auto& fld_ty_mono = monomorph_get(fld.second.ent); + DEBUG("Enum '" << var.first << "'::Struct '" << fld.first << "' " << fld_ty_mono); res &= type_impls_trait(fld_ty_mono); if( res == ::HIR::Compare::Unequal ) |