1
0
forked from aniani/vim

patch 8.2.4146: Vim9: shadowed function can be used in compiled function

Problem:    Vim9: shadowed function can be used in compiled function but not
            at script level.
Solution:   Also give an error in a compiled function. (closes #9563)
This commit is contained in:
Bram Moolenaar
2022-01-19 17:23:05 +00:00
parent 937610bc9f
commit f67c717e34
2 changed files with 17 additions and 6 deletions

View File

@@ -668,6 +668,21 @@ compile_call(
int res = FAIL;
int is_autoload;
int is_searchpair;
imported_T *import;
if (varlen >= sizeof(namebuf))
{
semsg(_(e_name_too_long_str), name);
return FAIL;
}
vim_strncpy(namebuf, *arg, varlen);
import = find_imported(name, varlen, FALSE, cctx);
if (import != NULL)
{
semsg(_(e_cannot_use_str_itself_it_is_imported), namebuf);
return FAIL;
}
// We can evaluate "has('name')" at compile time.
// We always evaluate "exists_compiled()" at compile time.
@@ -713,12 +728,6 @@ compile_call(
if (generate_ppconst(cctx, ppconst) == FAIL)
return FAIL;
if (varlen >= sizeof(namebuf))
{
semsg(_(e_name_too_long_str), name);
return FAIL;
}
vim_strncpy(namebuf, *arg, varlen);
name = fname_trans_sid(namebuf, fname_buf, &tofree, &error);
// We handle the "skip" argument of searchpair() and searchpairpos()