Mercurial > vim
comparison src/testdir/test_vim9_func.vim @ 26323:3841da4eac23 v8.2.3692
patch 8.2.3692: Vim9: cannot use :func inside a :def function
Commit: https://github.com/vim/vim/commit/38453528c3372293d70c8e85471a6188749ff331
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Nov 28 22:00:12 2021 +0000
patch 8.2.3692: Vim9: cannot use :func inside a :def function
Problem: Vim9: cannot use :func inside a :def function.
Solution: Make it work.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 28 Nov 2021 23:15:03 +0100 |
parents | 9e5e331828da |
children | a926ccd92ae1 |
comparison
equal
deleted
inserted
replaced
26322:931db05edfa7 | 26323:3841da4eac23 |
---|---|
584 END | 584 END |
585 CheckScriptFailure(lines, 'E488:', 3) | 585 CheckScriptFailure(lines, 'E488:', 3) |
586 enddef | 586 enddef |
587 | 587 |
588 def Test_nested_function() | 588 def Test_nested_function() |
589 def Nested(arg: string): string | 589 def NestedDef(arg: string): string |
590 return 'nested ' .. arg | 590 return 'nested ' .. arg |
591 enddef | 591 enddef |
592 Nested('function')->assert_equal('nested function') | 592 NestedDef(':def')->assert_equal('nested :def') |
593 | |
594 func NestedFunc(arg) | |
595 return 'nested ' .. a:arg | |
596 endfunc | |
597 NestedFunc(':func')->assert_equal('nested :func') | |
593 | 598 |
594 CheckDefFailure(['def Nested()', 'enddef', 'Nested(66)'], 'E118:') | 599 CheckDefFailure(['def Nested()', 'enddef', 'Nested(66)'], 'E118:') |
595 CheckDefFailure(['def Nested(arg: string)', 'enddef', 'Nested()'], 'E119:') | 600 CheckDefFailure(['def Nested(arg: string)', 'enddef', 'Nested()'], 'E119:') |
596 | 601 |
597 CheckDefFailure(['func Nested()', 'endfunc'], 'E1086:') | |
598 CheckDefFailure(['def s:Nested()', 'enddef'], 'E1075:') | 602 CheckDefFailure(['def s:Nested()', 'enddef'], 'E1075:') |
599 CheckDefFailure(['def b:Nested()', 'enddef'], 'E1075:') | 603 CheckDefFailure(['def b:Nested()', 'enddef'], 'E1075:') |
600 | 604 |
601 var lines =<< trim END | 605 var lines =<< trim END |
602 def Outer() | 606 def Outer() |
686 vim9script | 690 vim9script |
687 def Outer() | 691 def Outer() |
688 def g:Inner(): string | 692 def g:Inner(): string |
689 return 'inner' | 693 return 'inner' |
690 enddef | 694 enddef |
695 enddef | |
696 defcompile | |
697 Outer() | |
698 g:Inner()->assert_equal('inner') | |
699 delfunc g:Inner | |
700 Outer() | |
701 g:Inner()->assert_equal('inner') | |
702 delfunc g:Inner | |
703 Outer() | |
704 g:Inner()->assert_equal('inner') | |
705 delfunc g:Inner | |
706 END | |
707 CheckScriptSuccess(lines) | |
708 | |
709 lines =<< trim END | |
710 vim9script | |
711 def Outer() | |
712 func g:Inner() | |
713 return 'inner' | |
714 endfunc | |
691 enddef | 715 enddef |
692 defcompile | 716 defcompile |
693 Outer() | 717 Outer() |
694 g:Inner()->assert_equal('inner') | 718 g:Inner()->assert_equal('inner') |
695 delfunc g:Inner | 719 delfunc g:Inner |