diff options
Diffstat (limited to 'src/hir_conv/constant_evaluation.cpp')
-rw-r--r-- | src/hir_conv/constant_evaluation.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/hir_conv/constant_evaluation.cpp b/src/hir_conv/constant_evaluation.cpp index b362d5f9..b3e1cc9d 100644 --- a/src/hir_conv/constant_evaluation.cpp +++ b/src/hir_conv/constant_evaluation.cpp @@ -1088,10 +1088,12 @@ namespace { ::HIR::Visitor::visit_type(*e.inner); if( e.size_val == ~0u ) { - assert(e.size.get() != nullptr); - auto val = evaluate_constant(e.size->span(), m_crate, NewvalState { m_new_values, *m_mod_path, FMT("ty_" << &ty << "$") }, e.size); + assert(e.size); + assert(*e.size); + const auto& expr_ptr = *e.size; + auto val = evaluate_constant(expr_ptr->span(), m_crate, NewvalState { m_new_values, *m_mod_path, FMT("ty_" << &ty << "$") }, expr_ptr); if( !val.is_Integer() ) - ERROR(e.size->span(), E0000, "Array size isn't an integer"); + ERROR(expr_ptr->span(), E0000, "Array size isn't an integer"); e.size_val = val.as_Integer(); } DEBUG("Array " << ty << " - size = " << e.size_val); |