patch 8.2.1977: Vim9: error for using a string in a condition is confusing
Problem: Vim9: error for using a string in a condition is confusing.
Solution: Give a more specific error. Also adjust the compile time type
checking for || and &&.
diff --git a/src/vim9execute.c b/src/vim9execute.c
index c9ae709..d8f9cfe 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -3630,6 +3630,15 @@
return FALSE;
}
+ void
+emsg_using_string_as(typval_T *tv, int as_number)
+{
+ semsg(_(as_number ? e_using_string_as_number_str
+ : e_using_string_as_bool_str),
+ tv->vval.v_string == NULL
+ ? (char_u *)"" : tv->vval.v_string);
+}
+
/*
* If "tv" is a string give an error and return FAIL.
*/
@@ -3638,7 +3647,7 @@
{
if (tv->v_type == VAR_STRING)
{
- emsg(_(e_using_string_as_number));
+ emsg_using_string_as(tv, TRUE);
clear_tv(tv);
return FAIL;
}