comparison src/testdir/test_user_func.vim @ 31497:aa45593ec2ca v9.0.1081

patch 9.0.1081: using "->" with split lines does not always work Commit: https://github.com/vim/vim/commit/34820944ed101e1fbad16d552308f1486e715d27 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 19 20:28:38 2022 +0000 patch 9.0.1081: using "->" with split lines does not always work Problem: Using "->" with split lines does not always work. Solution: Avoid trying to get another line. (closes https://github.com/vim/vim/issues/11723)
author Bram Moolenaar <Bram@vim.org>
date Mon, 19 Dec 2022 21:30:03 +0100
parents 0913cd44fdfa
children 854aeaac48b7
comparison
equal deleted inserted replaced
31496:d73b5046612f 31497:aa45593ec2ca
175 return a:lead .. 'foo' 175 return a:lead .. 'foo'
176 endfunc 176 endfunc
177 177
178 func Test_user_method() 178 func Test_user_method()
179 eval 'bar'->s:addFoo()->assert_equal('barfoo') 179 eval 'bar'->s:addFoo()->assert_equal('barfoo')
180 endfunc
181
182 func Test_method_with_linebreaks()
183 let lines =<< trim END
184 vim9script
185
186 export def Scan(ll: list<number>): func(func(number))
187 return (Emit: func(number)) => {
188 for v in ll
189 Emit(v)
190 endfor
191 }
192 enddef
193
194 export def Build(Cont: func(func(number))): list<number>
195 var result: list<number> = []
196 Cont((v) => {
197 add(result, v)
198 })
199 return result
200 enddef
201
202 export def Noop(Cont: func(func(number))): func(func(number))
203 return (Emit: func(number)) => {
204 Cont(Emit)
205 }
206 enddef
207 END
208 call writefile(lines, 'Xlib.vim', 'D')
209
210 let lines =<< trim END
211 vim9script
212
213 import "./Xlib.vim" as lib
214
215 const x = [1, 2, 3]
216
217 var result = lib.Scan(x)->lib.Noop()->lib.Build()
218 assert_equal([1, 2, 3], result)
219
220 result = lib.Scan(x)->lib.Noop()
221 ->lib.Build()
222 assert_equal([1, 2, 3], result)
223
224 result = lib.Scan(x)
225 ->lib.Noop()->lib.Build()
226 assert_equal([1, 2, 3], result)
227
228 result = lib.Scan(x)
229 ->lib.Noop()
230 ->lib.Build()
231 assert_equal([1, 2, 3], result)
232 END
233 call v9.CheckScriptSuccess(lines)
180 endfunc 234 endfunc
181 235
182 func Test_failed_call_in_try() 236 func Test_failed_call_in_try()
183 try | call UnknownFunc() | catch | endtry 237 try | call UnknownFunc() | catch | endtry
184 endfunc 238 endfunc