patch 7.4.1163
Problem: Expressions "0 + v:true" and "'' . v:true" cause an error.
Solution: Return something sensible when using a special variable as a
number or as a string. (suggested by Damien)
diff --git a/src/testdir/test_viml.vim b/src/testdir/test_viml.vim
index 39c0667..f1a7cb4 100644
--- a/src/testdir/test_viml.vim
+++ b/src/testdir/test_viml.vim
@@ -936,6 +936,16 @@
call assert_equal(6, type(v:true))
call assert_equal(7, type(v:none))
call assert_equal(7, type(v:null))
+
+ call assert_equal(0, 0 + v:false)
+ call assert_equal(1, 0 + v:true)
+ call assert_equal(0, 0 + v:none)
+ call assert_equal(0, 0 + v:null)
+
+ call assert_equal('false', '' . v:false)
+ call assert_equal('true', '' . v:true)
+ call assert_equal('none', '' . v:none)
+ call assert_equal('null', '' . v:null)
endfunc
"-------------------------------------------------------------------------------