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?