diff --git a/py/compile.c b/py/compile.c index f3ac5b3837eb5..5dbd5fbca7826 100644 --- a/py/compile.c +++ b/py/compile.c @@ -935,17 +935,6 @@ STATIC void compile_return_stmt(compiler_t *comp, mp_parse_node_struct_t *pns) { if (MP_PARSE_NODE_IS_NULL(pns->nodes[0])) { // no argument to 'return', so return None EMIT_ARG(load_const_tok, MP_TOKEN_KW_NONE); - } else if (MP_PARSE_NODE_IS_STRUCT_KIND(pns->nodes[0], PN_test_if_expr)) { - // special case when returning an if-expression; to match CPython optimisation - mp_parse_node_struct_t *pns_test_if_expr = (mp_parse_node_struct_t*)pns->nodes[0]; - mp_parse_node_struct_t *pns_test_if_else = (mp_parse_node_struct_t*)pns_test_if_expr->nodes[1]; - - uint l_fail = comp_next_label(comp); - c_if_cond(comp, pns_test_if_else->nodes[0], false, l_fail); // condition - compile_node(comp, pns_test_if_expr->nodes[0]); // success value - EMIT(return_value); - EMIT_ARG(label_assign, l_fail); - compile_node(comp, pns_test_if_else->nodes[1]); // failure value } else { compile_node(comp, pns->nodes[0]); }