patch 8.2.0633: crash when using null partial in filter()
Problem: Crash when using null partial in filter().
Solution: Fix crash. Add more tests. (Yegappan Lakshmanan, closes #5976)
diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim
index ce16793..c8b5464 100644
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -1,5 +1,7 @@
" Tests for expressions.
+source check.vim
+
func Test_equal()
let base = {}
func base.method()
@@ -20,6 +22,8 @@
call assert_false([base.method] == [instance.other])
call assert_fails('echo base.method > instance.method')
+ call assert_equal(0, test_null_function() == function('min'))
+ call assert_equal(1, test_null_function() == test_null_function())
endfunc
func Test_version()
@@ -583,4 +587,24 @@
call assert_fails("let v = -{}", 'E728:')
endfunc
+" Test for float value comparison
+func Test_float_compare()
+ CheckFeature float
+ call assert_true(1.2 == 1.2)
+ call assert_true(1.0 != 1.2)
+ call assert_true(1.2 > 1.0)
+ call assert_true(1.2 >= 1.2)
+ call assert_true(1.0 < 1.2)
+ call assert_true(1.2 <= 1.2)
+ call assert_true(+0.0 == -0.0)
+ " two NaNs (not a number) are not equal
+ call assert_true(sqrt(-4.01) != (0.0 / 0.0))
+ " two inf (infinity) are equal
+ call assert_true((1.0 / 0) == (2.0 / 0))
+ " two -inf (infinity) are equal
+ call assert_true(-(1.0 / 0) == -(2.0 / 0))
+ " +infinity != -infinity
+ call assert_true((1.0 / 0) != -(2.0 / 0))
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab