From 8bff8adc57d9d388353fddb81cd676b4044d049d Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sun, 18 Aug 2024 23:40:43 -0400 Subject: [PATCH] xo-reader: refactor: streamline define_xs impl --- src/reader/define_xs.cpp | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) diff --git a/src/reader/define_xs.cpp b/src/reader/define_xs.cpp index d983bdf2..b813dc4d 100644 --- a/src/reader/define_xs.cpp +++ b/src/reader/define_xs.cpp @@ -70,19 +70,10 @@ namespace xo { void define_xs::on_typedescr(TypeDescr td, - exprstatestack * /*p_stack*/, - rp * /*p_emit_expr*/) + exprstatestack * p_stack, + rp * p_emit_expr) { - switch (this->defxs_type_) { - - case defexprstatetype::def_0: - case defexprstatetype::def_1: - case defexprstatetype::def_2: - /* NOT IMPLEMENTED (ill-formed program) */ - assert(false); - return; - - case defexprstatetype::def_3: + if (this->defxs_type_ == defexprstatetype::def_3) { this->defxs_type_ = defexprstatetype::def_4; this->cvt_expr_ = ConvertExprAccess::make(td /*dest_type*/, nullptr /*source_expr*/); @@ -90,19 +81,8 @@ namespace xo { //this->def_lhs_td_ = td; return; - - case defexprstatetype::def_4: - case defexprstatetype::def_5: - case defexprstatetype::def_6: - /* NOT IMPLEMENTED */ - assert(false); - return; - - case defexprstatetype::invalid: - case defexprstatetype::n_defexprstatetype: - /* unreachable */ - assert(false); - return; + } else { + exprstate::on_typedescr(td, p_stack, p_emit_expr); } }