summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hir_conv/bind.cpp11
-rw-r--r--src/hir_typeck/expr_cs.cpp2
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;