1
0
forked from aniani/vim

patch 9.0.1108: type error when using "any" type and adding to float

Problem:    Type error when using "any" type and adding a number to a float.
Solution:   Accept both a number and a float. (closes #11753)
This commit is contained in:
Bram Moolenaar
2022-12-29 20:56:24 +00:00
parent 73ade49c4b
commit c6951a76a5
12 changed files with 117 additions and 54 deletions

View File

@@ -813,6 +813,11 @@ check_type_maybe(
&& (actual->tt_flags & TTFLAG_BOOL_OK))
// Using number 0 or 1 for bool is OK.
return OK;
if (expected->tt_type == VAR_FLOAT
&& (expected->tt_flags & TTFLAG_NUMBER_OK)
&& actual->tt_type == VAR_NUMBER)
// Using number where float is expected is OK here.
return OK;
if (give_msg)
type_mismatch_where(expected, actual, where);
return FAIL;
@@ -848,7 +853,8 @@ check_type_maybe(
{
int i;
for (i = 0; i < expected->tt_argcount && i < actual->tt_argcount; ++i)
for (i = 0; i < expected->tt_argcount
&& i < actual->tt_argcount; ++i)
// Allow for using "any" argument type, lambda's have them.
if (actual->tt_args[i] != &t_any && check_type(
expected->tt_args[i], actual->tt_args[i], FALSE,