diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a93a8346..9165bc6ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ All notable changes to this project will be documented in this file. - ESP32 enable webcam version 2 (#18732) ### Fixed +- Berry prevent `import` from hiding a solidified class ### Removed diff --git a/lib/libesp32/berry/src/be_parser.c b/lib/libesp32/berry/src/be_parser.c index 9737cdf81..4fc03b793 100644 --- a/lib/libesp32/berry/src/be_parser.c +++ b/lib/libesp32/berry/src/be_parser.c @@ -488,7 +488,10 @@ static void new_var(bparser *parser, bstring *name, bexpdesc *var) var->v.idx = new_localvar(parser, name); /* if local, contains the index in current local var list */ } else { init_exp(var, ETGLOBAL, 0); - var->v.idx = be_global_new(parser->vm, name); + var->v.idx = be_global_find(parser->vm, name); + if (var->v.idx < 0) { + var->v.idx = be_global_new(parser->vm, name); + } if (var->v.idx > (int)IBx_MASK) { push_error(parser, "too many global variables (in '%s')", str(name));