summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/hir_typeck/expr_check.cpp2
-rw-r--r--src/hir_typeck/helpers.cpp3
-rw-r--r--src/hir_typeck/static.cpp3
3 files changed, 7 insertions, 1 deletions
diff --git a/src/hir_typeck/expr_check.cpp b/src/hir_typeck/expr_check.cpp
index 6153b197..b2cda61b 100644
--- a/src/hir_typeck/expr_check.cpp
+++ b/src/hir_typeck/expr_check.cpp
@@ -755,7 +755,7 @@ namespace {
const auto& val_ty = node.m_value->m_res_type;
TU_IFLET( ::HIR::TypeRef::Data, val_ty.m_data, Function, e,
-
+ DEBUG("- Function pointer: " << val_ty);
if( node.m_args.size() != e.m_arg_types.size() ) {
ERROR(node.span(), E0000, "Incorrect number of arguments to call via " << val_ty);
}
diff --git a/src/hir_typeck/helpers.cpp b/src/hir_typeck/helpers.cpp
index fa9a6a67..359e0c19 100644
--- a/src/hir_typeck/helpers.cpp
+++ b/src/hir_typeck/helpers.cpp
@@ -1683,6 +1683,9 @@ void TraitResolution::expand_associated_types_inplace(const Span& sp, ::HIR::Typ
),
(Function,
// Recurse?
+ for(auto& ty : e.m_arg_types)
+ expand_associated_types_inplace(sp, ty, stack);
+ expand_associated_types_inplace(sp, *e.m_rettype, stack);
),
(Closure,
// Recurse?
diff --git a/src/hir_typeck/static.cpp b/src/hir_typeck/static.cpp
index 651f0cfe..4a0e176d 100644
--- a/src/hir_typeck/static.cpp
+++ b/src/hir_typeck/static.cpp
@@ -630,6 +630,9 @@ void StaticTraitResolve::expand_associated_types_inner(const Span& sp, ::HIR::Ty
),
(Function,
// Recurse?
+ for(auto& ty : e.m_arg_types)
+ expand_associated_types_inner(sp, ty);
+ expand_associated_types_inner(sp, *e.m_rettype);
),
(Closure,
// Recurse?