Revert "Berry `var` allowed in with walrus operator `:=` (#19018)" (#19019)

This reverts commit 8f06552eee.
This commit is contained in:
s-hadinger 2023-07-03 14:10:05 +02:00 committed by GitHub
parent 8f06552eee
commit cc55cf0bb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 17 deletions

View File

@ -9,7 +9,6 @@ All notable changes to this project will be documented in this file.
- Matter add option to disable bridge mode (#18992) - Matter add option to disable bridge mode (#18992)
- Support for SGP41 TVOC/NOx Sensor (#18880) - Support for SGP41 TVOC/NOx Sensor (#18880)
- Command ``BrRestart`` to restart the Berry VM (experimental) - Command ``BrRestart`` to restart the Berry VM (experimental)
- Berry `var` allowed in with walrus operator `:=`
### Breaking Changed ### Breaking Changed
- Berry `bool( [] )` and `bool( {} )` now evaluate as `false` (#18986) - Berry `bool( [] )` and `bool( {} )` now evaluate as `false` (#18986)

Binary file not shown.

View File

@ -1135,22 +1135,8 @@ static void sub_expr(bparser *parser, bexpdesc *e, int prio)
static void walrus_expr(bparser *parser, bexpdesc *e) static void walrus_expr(bparser *parser, bexpdesc *e)
{ {
int line = parser->lexer.linenumber; int line = parser->lexer.linenumber;
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 */ sub_expr(parser, e, ASSIGN_OP_PRIO); /* left expression */
op = next_type(parser); btokentype op = next_type(parser);
}
if (op == OptWalrus) { if (op == OptWalrus) {
check_symbol(parser, e); check_symbol(parser, e);
bexpdesc e1 = *e; /* copy var to e1, e will get the result of expression */ 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 */ )) { if (be_code_setvar(parser->finfo, &e1, e, btrue /* do not release register */ )) {
parser->lexer.linenumber = line; parser->lexer.linenumber = line;
parser_error(parser, "try to assign constant expressions."); parser_error(parser,
"try to assign constant expressions.");
} }
} }
} }