comparison src/testdir/test_vim9_func.vim @ 22498:04a9b1399d8e v8.2.1797

patch 8.2.1797: Vim9: some parts of the code not tested Commit: https://github.com/vim/vim/commit/6abd3dc257cf56a8262db38eb15c7cc754e8e002 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Oct 4 14:17:32 2020 +0200 patch 8.2.1797: Vim9: some parts of the code not tested Problem: Vim9: some parts of the code not tested. Solution: Add a few tests.
author Bram Moolenaar <Bram@vim.org>
date Sun, 04 Oct 2020 14:30:05 +0200
parents 454b78ca8247
children c3e3c5707fe9
comparison
equal deleted inserted replaced
22497:6fe73c0d9626 22498:04a9b1399d8e
1054 RefAny = FuncNoArgRetNumber 1054 RefAny = FuncNoArgRetNumber
1055 RefAny = FuncNoArgRetString 1055 RefAny = FuncNoArgRetString
1056 CheckDefFailure(['var RefAny: func(): any', 'RefAny = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func()') 1056 CheckDefFailure(['var RefAny: func(): any', 'RefAny = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func()')
1057 CheckDefFailure(['var RefAny: func(): any', 'RefAny = FuncOneArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func(number)') 1057 CheckDefFailure(['var RefAny: func(): any', 'RefAny = FuncOneArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func(number)')
1058 1058
1059 var RefAnyNoArgs: func: any = RefAny
1060
1059 var RefNr: func: number 1061 var RefNr: func: number
1060 RefNr = FuncNoArgRetNumber 1062 RefNr = FuncNoArgRetNumber
1061 RefNr = FuncOneArgRetNumber 1063 RefNr = FuncOneArgRetNumber
1062 CheckDefFailure(['var RefNr: func: number', 'RefNr = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(...): number but got func()') 1064 CheckDefFailure(['var RefNr: func: number', 'RefNr = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(...): number but got func()')
1063 CheckDefFailure(['var RefNr: func: number', 'RefNr = FuncNoArgRetString'], 'E1012: Type mismatch; expected func(...): number but got func(): string') 1065 CheckDefFailure(['var RefNr: func: number', 'RefNr = FuncNoArgRetString'], 'E1012: Type mismatch; expected func(...): number but got func(): string')
1096 var str: string 1098 var str: string
1097 str = FuncOneArgRetAny('yes') 1099 str = FuncOneArgRetAny('yes')
1098 str->assert_equal('yes') 1100 str->assert_equal('yes')
1099 1101
1100 CheckDefFailure(['var str: string', 'str = FuncNoArgRetNumber()'], 'E1012: Type mismatch; expected string but got number') 1102 CheckDefFailure(['var str: string', 'str = FuncNoArgRetNumber()'], 'E1012: Type mismatch; expected string but got number')
1103 enddef
1104
1105 def Test_func_common_type()
1106 def FuncOne(n: number): number
1107 return n
1108 enddef
1109 def FuncTwo(s: string): number
1110 return len(s)
1111 enddef
1112 def FuncThree(n: number, s: string): number
1113 return n + len(s)
1114 enddef
1115 var list = [FuncOne, FuncTwo, FuncThree]
1116 assert_equal(8, list[0](8))
1117 assert_equal(4, list[1]('word'))
1118 assert_equal(7, list[2](3, 'word'))
1101 enddef 1119 enddef
1102 1120
1103 def MultiLine( 1121 def MultiLine(
1104 arg1: string, 1122 arg1: string,
1105 arg2 = 1234, 1123 arg2 = 1234,
1946 getqflist({'title': 1})->assert_equal({'title': 'test'}) 1964 getqflist({'title': 1})->assert_equal({'title': 'test'})
1947 1965
1948 Xsetlist = function('setqflist', [[], ' ']) 1966 Xsetlist = function('setqflist', [[], ' '])
1949 Xsetlist({'title': 'test'}) 1967 Xsetlist({'title': 'test'})
1950 getqflist({'title': 1})->assert_equal({'title': 'test'}) 1968 getqflist({'title': 1})->assert_equal({'title': 'test'})
1969
1970 var Len: func: number = function('len', ['word'])
1971 assert_equal(4, Len())
1951 enddef 1972 enddef
1952 1973
1953 def Test_cmd_modifier() 1974 def Test_cmd_modifier()
1954 tab echo '0' 1975 tab echo '0'
1955 CheckDefFailure(['5tab echo 3'], 'E16:') 1976 CheckDefFailure(['5tab echo 3'], 'E16:')