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)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 2c67103..6354782 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2033,6 +2033,34 @@
v9.CheckScriptFailure(['vim9script', "var x = <number>"], 'E15:', 2)
v9.CheckDefAndScriptFailure(["var x = <number >123"], 'E1068:', 1)
v9.CheckDefAndScriptFailure(["var x = <number 123"], 'E1104:', 1)
+
+ lines =<< trim END
+ vim9script
+
+ def Sum(v: any): float
+ var sum = 0.0
+ sum += v
+ return sum
+ enddef
+
+ const kk = 1
+ echo Sum(kk)
+ END
+ v9.CheckScriptSuccess(lines)
+
+ lines =<< trim END
+ vim9script
+
+ def Sum(v: any): float
+ var sum = 0.0
+ sum += <float>v
+ return sum
+ enddef
+
+ const kk = 1
+ Sum(kk)
+ END
+ v9.CheckScriptFailure(lines, 'E1012: Type mismatch; expected float but got number')
enddef
" test low level expression