Mercurial > vim
changeset 32812:57282f1d9e0f v9.0.1720
patch 9.0.1720: Vim9 class using wrong index for overridden method
Commit: https://github.com/vim/vim/commit/a456b12011569be91418bbf6277d844c67e05e79
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Wed Aug 16 20:14:37 2023 +0200
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>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 16 Aug 2023 20:51:32 +0200 |
parents | c2c84e9b90ed |
children | ed0a14996071 |
files | src/testdir/test_vim9_class.vim src/version.c src/vim9class.c |
diffstat | 3 files changed, 41 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -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