0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.3058: Vim9: cannot use ternary operator in parenthesis

Problem:    Vim9: cannot use ternary operator in parenthesis.
Solution:   Do not use "==" for a default argument value.  (closes #8462)
This commit is contained in:
Bram Moolenaar 2021-06-26 21:52:02 +02:00
parent 307dec4567
commit 015cf10311
3 changed files with 15 additions and 1 deletions

View File

@ -923,6 +923,13 @@ def Test_call_lambda_args()
END
CheckDefAndScriptFailure(lines, 'E1172:')
lines =<< trim END
var a = 0
var b = (a == 0 ? 1 : 2)
assert_equal(1, b)
END
CheckDefAndScriptSuccess(lines)
lines =<< trim END
def ShadowLocal()
var one = 1

View File

@ -266,13 +266,18 @@ get_function_args(
}
else
{
char_u *np;
arg = p;
p = one_function_arg(p, newargs, argtypes, types_optional,
evalarg, FALSE, skip);
if (p == arg)
break;
if (*skipwhite(p) == '=' && default_args != NULL)
// Recognize " = expr" but not " == expr". A lambda can have
// "(a = expr" but "(a == expr" is not a lambda.
np = skipwhite(p);
if (*np == '=' && np[1] != '=' && default_args != NULL)
{
typval_T rettv;

View File

@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3058,
/**/
3057,
/**/