0
0
mirror of https://github.com/vim/vim.git synced 2025-09-02 21:13:50 -04:00

patch 9.0.1720: Vim9 class using wrong index for overridden method

Problem: Vim9 class using wrong index for overridden method
Solution: Use correct index for overridden method

closes: #12524
closes: #12813

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
Yegappan Lakshmanan 2023-08-16 20:14:37 +02:00 committed by Christian Brabandt
parent 20b33b56ad
commit a456b12011
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
3 changed files with 41 additions and 1 deletions

View File

@ -1948,4 +1948,42 @@ def Test_call_method_in_extended_class()
v9.CheckScriptSuccess(lines)
enddef
" Test for calling a method in the parent class that is extended partially.
" This used to fail with the 'E118: Too many arguments for function: Text' error
" message (Github issue #12524).
def Test_call_method_in_parent_class()
var lines =<< trim END
vim9script
class Widget
this._lnum: number = 1
def SetY(lnum: number)
this._lnum = lnum
enddef
def Text(): string
return ''
enddef
endclass
class Foo extends Widget
def Text(): string
return '<Foo>'
enddef
endclass
def Stack(w1: Widget, w2: Widget): list<Widget>
w1.SetY(1)
w2.SetY(2)
return [w1, w2]
enddef
var foo1 = Foo.new()
var foo2 = Foo.new()
var l = Stack(foo1, foo2)
END
v9.CheckScriptSuccess(lines)
enddef
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker

View File

@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1720,
/**/
1719,
/**/

View File

@ -911,7 +911,7 @@ early_ret:
== 0)
{
int *table = (int *)(if2cl + 1);
table[if_i] = cl_i;
table[if_i] = objmethods.ga_len + cl_i;
break;
}
}