Mercurial > vim
diff src/testdir/test_vim9_class.vim @ 31692:2f1af1b2f82d v9.0.1178
patch 9.0.1178: a child class cannot override functions from a base class
Commit: https://github.com/vim/vim/commit/58b40092e616585a763cf4d214d47ccd9167d6f7
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 11 15:59:05 2023 +0000
patch 9.0.1178: a child class cannot override functions from a base class
Problem: A child class cannot override functions from a base class.
Solution: Allow overriding and implement "super".
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 11 Jan 2023 17:00:05 +0100 |
parents | ec76f9d2319e |
children | 2f61e308b997 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -817,6 +817,27 @@ def Test_class_extends() endclass END v9.CheckScriptFailure(lines, 'E1354: Cannot extend SomeVar') + + lines =<< trim END + vim9script + class Base + this.name: string + def ToString(): string + return this.name + enddef + endclass + + class Child extends Base + this.age: number + def ToString(): string + return super.ToString() .. ': ' .. this.age + enddef + endclass + + var o = Child.new('John', 42) + assert_equal('John: 42', o.ToString()) + END + v9.CheckScriptSuccess(lines) enddef