changeset 32242:0cc6b0bccfee v9.0.1452

patch 9.0.1452: code using EVAL_CONSTANT is dead, it is never set Commit: https://github.com/vim/vim/commit/b7f6f93475a3ad5c590a09a2577fd51590bea9e1 Author: zeertzjq <zeertzjq@outlook.com> Date: Thu Apr 13 22:12:50 2023 +0100 patch 9.0.1452: code using EVAL_CONSTANT is dead, it is never set Problem: Code using EVAL_CONSTANT is dead, it is never set. Solution: Remove EVAL_CONSTANT. (closes https://github.com/vim/vim/issues/12252)
author Bram Moolenaar <Bram@vim.org>
date Thu, 13 Apr 2023 23:15:03 +0200
parents 81a19cb468af
children bf6556bfd412
files src/eval.c src/structs.h src/version.c
diffstat 3 files changed, 8 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -2358,7 +2358,7 @@ eval_func(
     // Need to make a copy, in case evaluating the arguments makes
     // the name invalid.
     s = vim_strsave(s);
-    if (s == NULL || (evaluate && (*s == NUL || (flags & EVAL_CONSTANT))))
+    if (s == NULL || (evaluate && *s == NUL))
 	ret = FAIL;
     else
     {
@@ -2647,7 +2647,6 @@ eval0_retarg(
     char_u	*expr_end;
     int		did_emsg_before = did_emsg;
     int		called_emsg_before = called_emsg;
-    int		flags = evalarg == NULL ? 0 : evalarg->eval_flags;
     int		check_for_end = retarg == NULL;
     int		end_error = FALSE;
 
@@ -2692,7 +2691,6 @@ eval0_retarg(
 	if (!aborting()
 		&& did_emsg == did_emsg_before
 		&& called_emsg == called_emsg_before
-		&& (flags & EVAL_CONSTANT) == 0
 		&& (!in_vim9script() || !vim9_bad_comment(p)))
 	{
 	    if (end_error)
@@ -2807,7 +2805,7 @@ eval1(char_u **arg, typval_T *rettv, eva
 	}
 	*arg = skipwhite_and_linebreak(*arg + 1, evalarg_used);
 	evalarg_used->eval_flags = (op_falsy ? !result : result)
-				    ? orig_flags : orig_flags & ~EVAL_EVALUATE;
+				  ? orig_flags : (orig_flags & ~EVAL_EVALUATE);
 	if (eval1(arg, &var2, evalarg_used) == FAIL)
 	{
 	    evalarg_used->eval_flags = orig_flags;
@@ -2856,7 +2854,7 @@ eval1(char_u **arg, typval_T *rettv, eva
 	    }
 	    *arg = skipwhite_and_linebreak(*arg + 1, evalarg_used);
 	    evalarg_used->eval_flags = !result ? orig_flags
-						 : orig_flags & ~EVAL_EVALUATE;
+					       : (orig_flags & ~EVAL_EVALUATE);
 	    if (eval1(arg, &var2, evalarg_used) == FAIL)
 	    {
 		if (evaluate && result)
@@ -2960,7 +2958,7 @@ eval2(char_u **arg, typval_T *rettv, eva
 	    }
 	    *arg = skipwhite_and_linebreak(*arg + 2, evalarg_used);
 	    evalarg_used->eval_flags = !result ? orig_flags
-						 : orig_flags & ~EVAL_EVALUATE;
+					       : (orig_flags & ~EVAL_EVALUATE);
 	    if (eval3(arg, &var2, evalarg_used) == FAIL)
 		return FAIL;
 
@@ -3086,7 +3084,7 @@ eval3(char_u **arg, typval_T *rettv, eva
 	    }
 	    *arg = skipwhite_and_linebreak(*arg + 2, evalarg_used);
 	    evalarg_used->eval_flags = result ? orig_flags
-						 : orig_flags & ~EVAL_EVALUATE;
+					      : (orig_flags & ~EVAL_EVALUATE);
 	    CLEAR_FIELD(var2);
 	    if (eval4(arg, &var2, evalarg_used) == FAIL)
 		return FAIL;
@@ -4279,8 +4277,6 @@ eval9(
 		*arg = skipwhite(*arg);
 		ret = eval_func(arg, evalarg, s, len, rettv, flags, NULL);
 	    }
-	    else if (flags & EVAL_CONSTANT)
-		ret = FAIL;
 	    else if (evaluate)
 	    {
 		// get the value of "true", "false", etc. or a variable
--- a/src/structs.h
+++ b/src/structs.h
@@ -2102,9 +2102,8 @@ typedef struct {
     char_u	*eval_tofree_lambda;
 } evalarg_T;
 
-// Flags for expression evaluation.
+// Flag for expression evaluation.
 #define EVAL_EVALUATE	    1	    // when missing don't actually evaluate
-#define EVAL_CONSTANT	    2	    // when not a constant return FAIL
 
 # ifdef FEAT_PROFILE
 /*
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1452,
+/**/
     1451,
 /**/
     1450,