@@ -660,13 +660,36 @@ def Test_expr4_equal()
660660 CheckDefExecAndScriptFailure ([" var x: any = true" , ' echo x == ""' ], ' E1072: Cannot compare bool with string' , 2 )
661661 CheckDefExecAndScriptFailure2 ([" var x: any = 99" , ' echo x == true' ], ' E1138' , ' E1072:' , 2 )
662662 CheckDefExecAndScriptFailure2 ([" var x: any = 'a'" , ' echo x == 99' ], ' E1030:' , ' E1072:' , 2 )
663+ enddef
663664
665+ def Test_expr4_wrong_type ()
664666 for op in [' >' , ' >=' , ' <' , ' <=' , ' =~' , ' !~' ]
665667 CheckDefExecAndScriptFailure ([
666668 " var a: any = 'a'",
667669 ' var b: any = true' ,
668670 ' echo a ' .. op .. ' b' ], ' E1072:' , 3 )
669671 endfor
672+ for op in [' >' , ' >=' , ' <' , ' <=' ]
673+ CheckDefExecAndScriptFailure2 ([
674+ " var n: any = 2",
675+ ' echo n ' .. op .. ' "3"' ], ' E1030:' , ' E1072:' , 2 )
676+ endfor
677+ for op in [' =~' , ' !~' ]
678+ CheckDefExecAndScriptFailure ([
679+ " var n: any = 2",
680+ ' echo n ' .. op .. ' "3"' ], ' E1072:' , 2 )
681+ endfor
682+
683+ CheckDefAndScriptFailure ([
684+ ' echo v:none == true' ], ' E1072:' , 1 )
685+ CheckDefAndScriptFailure ([
686+ ' echo false >= true' ], ' E1072:' , 1 )
687+ CheckDefExecAndScriptFailure ([
688+ " var n: any = v:none",
689+ ' echo n == true' ], ' E1072:' , 2 )
690+ CheckDefExecAndScriptFailure ([
691+ " var n: any = v:none",
692+ ' echo n < true' ], ' E1072:' , 2 )
670693enddef
671694
672695" test != comperator
0 commit comments