diff options
author | Christian Brabandt <cb@256bit.org> | 2023-09-11 20:08:50 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2023-09-11 20:08:50 +0200 |
commit | 504543f98be2ddb6d49ea2f7e996112868fc54ed (patch) | |
tree | c412ecaa12ca562cb0b8fc3dbb51ba1ad97924c2 /src/vim9compile.c | |
parent | 6b9c2025496e415856ad70b819de83a48267c582 (diff) |
patch 9.0.1897: Vim9: confusing error with .= in compiled functionsv9.0.1897
Problem: Vim9: confusing error with .= in compiled functions
Solution: Check in error condition, if .= was attempted and in that case
give a different error message.
closes: #12972
closes: #13066
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/vim9compile.c')
-rw-r--r-- | src/vim9compile.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/vim9compile.c b/src/vim9compile.c index 7d24f21c8d..cc4aa46386 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -1669,7 +1669,14 @@ compile_lhs( { if (is_decl) { - semsg(_(e_variable_already_declared_str), lhs->lhs_name); + // if we come here with what looks like an assignment like .= + // but which has been reject by assignment_len() from may_compile_assignment + // give a better error message + char_u *p = skipwhite(lhs->lhs_end); + if (p[0] == '.' && p[1] == '=') + emsg(_(e_dot_equal_not_supported_with_script_version_two)); + else + semsg(_(e_variable_already_declared_str), lhs->lhs_name); return FAIL; } } |