Problem: Vim9: can call import with star directly.
Solution: Check that the import used star.
// Need to make a copy, in case evaluating the arguments makes
// the name invalid.
s = vim_strsave(s);
- if (s == NULL || (flags & EVAL_CONSTANT))
+ if (s == NULL || *s == NUL || (flags & EVAL_CONSTANT))
ret = FAIL;
else
{
CheckScriptFailure(lines, 'E1047:')
delete('Xfoo.vim')
+
+ lines =<< trim END
+ vim9script
+ def TheFunc()
+ echo 'the func'
+ enddef
+ export var Ref = TheFunc
+ END
+ writefile([], 'Xthat.vim')
+ lines =<< trim END
+ import * as That from './Xthat.vim'
+ That()
+ END
+ CheckDefAndScriptFailure2(lines, 'E1094:', 'E1236: Cannot use That itself')
+ delete('Xthat.vim')
enddef
def Test_import_as()
*lenp = (int)STRLEN(s);
return s;
}
- // TODO: what if (import->imp_flags & IMP_FLAGS_STAR)
+ if (import->imp_flags & IMP_FLAGS_STAR)
+ {
+ name[len] = NUL;
+ semsg(_(e_cannot_use_str_itself_it_is_imported_with_star),
+ name);
+ name[len] = cc;
+ *lenp = 0;
+ return (char_u *)""; // just in case
+ }
+ else
{
scriptitem_T *si = SCRIPT_ITEM(import->imp_sid);
svar_T *sv = ((svar_T *)si->sn_var_vals.ga_data)
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 3807,
/**/
3806,
/**/