summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-08-06 11:35:28 +0100
committerBram Moolenaar <Bram@vim.org>2022-08-06 11:35:28 +0100
commit25f40af9d2f04d18c8a276249f2794e83aa5c290 (patch)
tree211120fc59c884678f5d27233a85af3401452c83 /src
parent5ac4b1a24e3ba52698a0d24b22cdd2e1c7895417 (diff)
downloadvim-git-25f40af9d2f04d18c8a276249f2794e83aa5c290.tar.gz
patch 9.0.0150: error for using #{ in an expression is a bit confusingv9.0.0150
Problem: Error for using #{ in an expression is a bit confusing. Solution: Mention that this error is only given for an expression. Avoid giving the error more than once. (closes #10855)
Diffstat (limited to 'src')
-rw-r--r--src/errors.h4
-rw-r--r--src/eval.c5
-rw-r--r--src/testdir/test_vim9_expr.vim2
-rw-r--r--src/version.c2
-rw-r--r--src/vim9script.c4
5 files changed, 13 insertions, 4 deletions
diff --git a/src/errors.h b/src/errors.h
index 3b23c88ad..977abbf14 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -2984,8 +2984,8 @@ EXTERN char e_argument_already_declared_in_script_str[]
INIT(= N_("E1168: Argument already declared in the script: %s"));
EXTERN char e_expression_too_recursive_str[]
INIT(= N_("E1169: Expression too recursive: %s"));
-EXTERN char e_cannot_use_hash_curly_to_start_comment[]
- INIT(= N_("E1170: Cannot use #{ to start a comment"));
+EXTERN char e_cannot_use_hash_curly_to_start_comment_in_an_expression[]
+ INIT(= N_("E1170: Cannot use #{ to start a comment in an expression"));
EXTERN char e_missing_end_block[]
INIT(= N_("E1171: Missing } after inline function"));
EXTERN char e_cannot_use_default_values_in_lambda[]
diff --git a/src/eval.c b/src/eval.c
index 42b883e9b..8dfbb8f2a 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2157,6 +2157,8 @@ newline_skip_comments(char_u *arg)
break;
p = nl;
}
+ else if (vim9_bad_comment(p))
+ break;
if (*p != NL)
break;
++p; // skip another NL
@@ -2182,7 +2184,10 @@ getline_peek_skip_comments(evalarg_T *evalarg)
break;
p = skipwhite(next);
if (*p != NUL && !vim9_comment_start(p))
+ {
+ (void)vim9_bad_comment(p);
return next;
+ }
if (eval_next_line(NULL, evalarg) == NULL)
break;
}
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index df65d7247..f30cd8da1 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2823,6 +2823,8 @@ def Test_expr9_dict()
v9.CheckDefAndScriptFailure(["var x = 'a' .. #{a: 1}"], 'E1170:', 1)
v9.CheckDefAndScriptFailure(["var x = true ? #{a: 1}"], 'E1170:', 1)
+ v9.CheckDefAndScriptFailure(["var x = 'a'", " #{a: 1}"], 'E1170:', 1)
+
v9.CheckDefAndScriptFailure(["var x = {a:8}"], 'E1069:', 1)
v9.CheckDefAndScriptFailure(["var x = {a : 8}"], 'E1068:', 1)
v9.CheckDefAndScriptFailure(["var x = {a :8}"], 'E1068:', 1)
diff --git a/src/version.c b/src/version.c
index acecc1172..27d269e9f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -736,6 +736,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 150,
+/**/
149,
/**/
148,
diff --git a/src/vim9script.c b/src/vim9script.c
index 14f36b405..e3cb992e4 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -183,9 +183,9 @@ not_in_vim9(exarg_T *eap)
int
vim9_bad_comment(char_u *p)
{
- if (p[0] == '#' && p[1] == '{' && p[2] != '{')
+ if (!did_emsg && p[0] == '#' && p[1] == '{' && p[2] != '{')
{
- emsg(_(e_cannot_use_hash_curly_to_start_comment));
+ emsg(_(e_cannot_use_hash_curly_to_start_comment_in_an_expression));
return TRUE;
}
return FALSE;