Mercurial > vim
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 |