Mercurial > vim
changeset 33352:7f95d9a3e317
runtime(todo): Update Vim9 class items (#13148)
Commit: https://github.com/vim/vim/commit/ceffca683ba986065e583d02e7ace964efdb256e
Author: Yegappan Lakshmanan <4298407+yegappan@users.noreply.github.com>
Date: Sun Sep 24 14:36:56 2023 -0700
runtime(todo): Update Vim9 class items (https://github.com/vim/vim/issues/13148)
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 24 Sep 2023 23:45:07 +0200 |
parents | a3bbd065fb87 |
children | b59205d0567e |
files | runtime/doc/todo.txt |
diffstat | 1 files changed, 8 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -120,16 +120,9 @@ Upcoming larger works: - example plugin: https://github.com/uga-rosa/dps-vsctm.vim -Further Vim9 improvements, possibly after launch: +Further Vim9 improvements: - Classes and Interfaces. See |vim9-classes| - - Change access: public by default, private by prefixing "_". - Check for error: can't have same name twice (ignoring "_" prefix). - - Private methods? - either: private def Func() - or: def _Func() - Perhaps use "private" keyword instead of "_" prefix? - "final" object members - can only be set in the constructor. - - Support export/import of classes and interfaces. - Cannot use class type of itself in the method (Issue #12369) - Cannot use an object method in a lambda #12417 Define all methods before compiling them? @@ -137,13 +130,6 @@ Further Vim9 improvements, possibly afte Also #12081 first case. - Using list of functions does not work #12081 (repro in later message). - First argument of call() cannot be "obj.Func". (#11865) - - null_object - constant type 17 not supported (Issue #12043) - - problem compiling object method call as function call argument (Issue - #12081) - - Make ":defcompile ClassName" compile all functions and methods in the - class. - - Forward declaration of a class? E.g. for Clone() function. - email lifepillar 2023 Mar 26 - Getting member of variable with "any" type should be handled at runtime. Remove temporary solution from #12096 / patch 9.0.1375. - "obj.Method()" does not always work in a compiled function, assumes "obj" @@ -151,18 +137,21 @@ Further Vim9 improvements, possibly afte Issue #11822: any.Func() can be a dict or an object call, need to handle this at runtime. Also see #12198 for an example. Possibly issue #11981 can be fixed at the same time (has two examples). - - accept line breaks in member initialization. #11957 + - Support export/import of classes and interfaces. + - Make ":defcompile ClassName" compile all functions and methods in the + class. + - Forward declaration of a class? E.g. for Clone() function. + Email lifepillar 2023 Mar 26 - object empty(), len() - can class define a method to be used for them? - add to help: when using a default new() method then reordering object members may cause trouble. Can define new() without arguments to avoid. - - TODO items: check types for "implements" - members and methods - When "Meta" is a class, is "const MetaAlias = Meta" allowed? It should - either work or given an error. possibly give an error now and implement it + either work or given an error. Possibly give an error now and implement it later (using a typedef). #12006 - how about lock/unlock? - - When checking "implements" also check types of members and function args. - For chaining, allow using the class name as type for function return value. + - Implement "specifies" interface - Implement generics - Add "assignable" (class or child)? - More efficient way for interface member index than iterating over list?