forked from aniani/vim
patch 8.2.1683: Vim9: assignment test fails
Problem: Vim9: assignment test fails. Solution: Include changes to find Ex command.
This commit is contained in:
@@ -3224,19 +3224,33 @@ find_ex_command(
|
|||||||
// "g:varname" is an expression.
|
// "g:varname" is an expression.
|
||||||
|| eap->cmd[1] == ':'
|
|| eap->cmd[1] == ':'
|
||||||
)
|
)
|
||||||
: (
|
|
||||||
// "varname[]" is an expression.
|
|
||||||
*p == '['
|
|
||||||
// "varname->func()" is an expression.
|
// "varname->func()" is an expression.
|
||||||
|| (*p == '-' && p[1] == '>')
|
: (*p == '-' && p[1] == '>')))
|
||||||
// "varname.expr" is an expression.
|
|
||||||
|| (*p == '.' && ASCII_ISALPHA(p[1]))
|
|
||||||
)))
|
|
||||||
{
|
{
|
||||||
eap->cmdidx = CMD_eval;
|
eap->cmdidx = CMD_eval;
|
||||||
return eap->cmd;
|
return eap->cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (p != eap->cmd && (
|
||||||
|
// "varname[]" is an expression.
|
||||||
|
*p == '['
|
||||||
|
// "varname.key" is an expression.
|
||||||
|
|| (*p == '.' && ASCII_ISALPHA(p[1]))))
|
||||||
|
{
|
||||||
|
char_u *after = p;
|
||||||
|
|
||||||
|
// When followed by "=" or "+=" then it is an assignment.
|
||||||
|
++emsg_silent;
|
||||||
|
if (skip_expr(&after) == OK
|
||||||
|
&& (*after == '='
|
||||||
|
|| (*after != NUL && after[1] == '=')))
|
||||||
|
eap->cmdidx = CMD_let;
|
||||||
|
else
|
||||||
|
eap->cmdidx = CMD_eval;
|
||||||
|
--emsg_silent;
|
||||||
|
return eap->cmd;
|
||||||
|
}
|
||||||
|
|
||||||
// "[...]->Method()" is a list expression, but "[a, b] = Func()" is
|
// "[...]->Method()" is a list expression, but "[a, b] = Func()" is
|
||||||
// an assignment.
|
// an assignment.
|
||||||
// If there is no line break inside the "[...]" then "p" is
|
// If there is no line break inside the "[...]" then "p" is
|
||||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1683,
|
||||||
/**/
|
/**/
|
||||||
1682,
|
1682,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user