assert_equal('ok', g:result)
unlet g:result
+ lines =<< trim END
+ vim9script
+ def Outer()
+ def _Inner()
+ echo 'bad'
+ enddef
+ Inner()
+ enddef
+ defcompile
+ END
+ v9.CheckScriptFailure(lines, 'E128:')
+
+ lines =<< trim END
+ vim9script
+ def Outer()
+ def g:inner()
+ echo 'bad'
+ enddef
+ Inner()
+ enddef
+ defcompile
+ END
+ v9.CheckScriptFailure(lines, 'E128:')
+
# nested function inside conditional
lines =<< trim END
vim9script
def Iter(container: any): any
var idx = -1
var obj = {state: container}
- def g:__NextItem__(self: dict<any>): any
+ def g:NextItem__(self: dict<any>): any
++idx
return self.state[idx]
enddef
- obj.__next__ = function('g:__NextItem__', [obj])
+ obj.__next__ = function('g:NextItem__', [obj])
return obj
enddef
}
if (check_defined(name_start, name_end - name_start, cctx, FALSE) == FAIL)
return NULL;
+ if (!ASCII_ISUPPER(is_global ? name_start[2] : name_start[0]))
+ {
+ semsg(_(e_function_name_must_start_with_capital_or_s_str), name_start);
+ return NULL;
+ }
eap->arg = name_end;
fill_exarg_from_cctx(eap, cctx);