diff --git a/CHANGELOG.md b/CHANGELOG.md index 046d51060c8e..846e61639e07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,6 @@ All notable changes to this project will be documented in this file. - Matter add option to disable bridge mode (#18992) - Support for SGP41 TVOC/NOx Sensor (#18880) - Command ``BrRestart`` to restart the Berry VM (experimental) -- Berry `var` allowed in with walrus operator `:=` ### Breaking Changed - Berry `bool( [] )` and `bool( {} )` now evaluate as `false` (#18986) diff --git a/lib/libesp32/berry/berry.exe b/lib/libesp32/berry/berry.exe index b872029021bc..a20999c831e7 100644 Binary files a/lib/libesp32/berry/berry.exe and b/lib/libesp32/berry/berry.exe differ diff --git a/lib/libesp32/berry/src/be_parser.c b/lib/libesp32/berry/src/be_parser.c index dff91b54651e..57b2ffa7fbbd 100644 --- a/lib/libesp32/berry/src/be_parser.c +++ b/lib/libesp32/berry/src/be_parser.c @@ -1135,22 +1135,8 @@ static void sub_expr(bparser *parser, bexpdesc *e, int prio) static void walrus_expr(bparser *parser, bexpdesc *e) { int line = parser->lexer.linenumber; + sub_expr(parser, e, ASSIGN_OP_PRIO); /* left expression */ btokentype op = next_type(parser); - if (op == KeyVar) { - /* 'var' ID ':=' expr */ - scan_next_token(parser); /* skip 'var' */ - bstring *name; - name = next_token(parser).u.s; - match_token(parser, TokenId); /* match and skip ID */ - new_var(parser, name, e); /* new variable */ - op = next_type(parser); - if (op != OptWalrus) { - parser_error(parser, "'var' in expr must be followed by ':='"); - } - } else { - sub_expr(parser, e, ASSIGN_OP_PRIO); /* left expression */ - op = next_type(parser); - } if (op == OptWalrus) { check_symbol(parser, e); bexpdesc e1 = *e; /* copy var to e1, e will get the result of expression */ @@ -1163,7 +1149,8 @@ static void walrus_expr(bparser *parser, bexpdesc *e) } if (be_code_setvar(parser->finfo, &e1, e, btrue /* do not release register */ )) { parser->lexer.linenumber = line; - parser_error(parser, "try to assign constant expressions."); + parser_error(parser, + "try to assign constant expressions."); } } }