From 7a1bdaecf2d2a06eb06ed462e6ccae4954939fc9 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 4 Feb 2023 15:45:27 +0000 Subject: [PATCH] patch 9.0.1280: inssufficient testing for what 9.0.1265 fixes Problem: Inssufficient testing for what 9.0.1265 fixes. Solution: Add a couple of test cases. (issue #11885) --- src/testdir/test_vim9_class.vim | 54 +++++++++++++++++++++++++++++++++ src/version.c | 2 ++ 2 files changed, 56 insertions(+) diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index a8128c7c7..184a61f81 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -1050,6 +1050,60 @@ def Test_call_interface_method() END v9.CheckScriptSuccess(lines) + # method of interface returns a value + lines =<< trim END + vim9script + interface Base + def Enter(): string + endinterface + + class Child implements Base + def Enter(): string + g:result ..= 'child' + return "/resource" + enddef + endclass + + def F(obj: Base) + var r = obj.Enter() + g:result ..= r + enddef + + g:result = '' + F(Child.new()) + assert_equal('child/resource', g:result) + unlet g:result + END + v9.CheckScriptSuccess(lines) + + lines =<< trim END + vim9script + class Base + def Enter(): string + return null_string + enddef + endclass + + class Child extends Base + def Enter(): string + g:result ..= 'child' + return "/resource" + enddef + endclass + + def F(obj: Base) + var r = obj.Enter() + g:result ..= r + enddef + + g:result = '' + F(Child.new()) + assert_equal('child/resource', g:result) + unlet g:result + END + v9.CheckScriptSuccess(lines) + + # No class that implements the interface. lines =<< trim END vim9script diff --git a/src/version.c b/src/version.c index 2e5b93201..cdca15168 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1280, /**/ 1279, /**/ -- 2.50.1