diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/hir_conv/bind.cpp | 11 | ||||
-rw-r--r-- | src/hir_typeck/expr_cs.cpp | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/hir_conv/bind.cpp b/src/hir_conv/bind.cpp index b15b08e0..91b2f038 100644 --- a/src/hir_conv/bind.cpp +++ b/src/hir_conv/bind.cpp @@ -410,6 +410,11 @@ namespace { upper_visitor(uv) {} + void visit_node_ptr(::HIR::ExprNodeP& node_ptr) override + { + upper_visitor.visit_type(node_ptr->m_res_type); + ::HIR::ExprVisitorDef::visit_node_ptr(node_ptr); + } void visit(::HIR::ExprNode_Let& node) override { upper_visitor.visit_type(node.m_type); @@ -446,6 +451,12 @@ namespace { ::HIR::ExprVisitorDef::visit(node); } + void visit(::HIR::ExprNode_StructLiteral& node) override + { + upper_visitor.visit_generic_path(node.m_path, ::HIR::Visitor::PathContext::TYPE); + ::HIR::ExprVisitorDef::visit(node); + } + void visit(::HIR::ExprNode_Closure& node) override { upper_visitor.visit_type(node.m_return); diff --git a/src/hir_typeck/expr_cs.cpp b/src/hir_typeck/expr_cs.cpp index 7312bb3b..9240cbde 100644 --- a/src/hir_typeck/expr_cs.cpp +++ b/src/hir_typeck/expr_cs.cpp @@ -1112,7 +1112,7 @@ namespace { generics = &e->m_params; ) ) - assert(fields_ptr); + ASSERT_BUG(node.span(), fields_ptr, ""); const ::HIR::t_struct_fields& fields = *fields_ptr; const auto& ty_params = node.m_path.m_params.m_types; |