changeset 33891:56b32a00f325

runtime(doc): update todo items (#13631) Commit: https://github.com/vim/vim/commit/563e6440bf00f2f52de8412d4f967ea224467053 Author: Yegappan Lakshmanan <4298407+yegappan@users.noreply.github.com> Date: Tue Dec 5 08:19:06 2023 -0800 runtime(doc): update todo items (https://github.com/vim/vim/issues/13631) Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sun, 10 Dec 2023 15:16:27 +0100
parents d7771987eae6
children d90f75f84362
files runtime/doc/todo.txt runtime/doc/vim9class.txt
diffstat 2 files changed, 9 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -124,12 +124,6 @@ Further Vim9 improvements:
 - Classes and Interfaces. See |vim9-classes|
   - "final" object members - can only be set in the constructor.
   - 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?
-  - Cannot call class member of funcref type  (Issue #12324)
-	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)
   - 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"
@@ -137,14 +131,11 @@ Further Vim9 improvements:
     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).
-  - 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.
   - 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
     later (using a typedef).  #12006
@@ -157,7 +148,6 @@ Further Vim9 improvements:
   - More efficient way for interface member index than iterating over list?
   - a variant of type() that returns a different type for each class?
       list<number> and list<string> should also differ.
-- implement :type
 - implement :enum
 - Promise class, could be used to wait on a popup close callback?
 - class local to a function
@@ -166,6 +156,8 @@ Further Vim9 improvements:
 - When evaluating constants for script variables, some functions could work:
     has(featureName), len(someString)
 - Implement as part of an expression: ++expr, --expr, expr++, expr--.
+- The use of the literal value "null" and the type specific "null_xxx"
+  values is confusing (#13458, #11770).
 
 Information missing in terminfo:
 - Codes used for focus gained and lost termcodes are hard-coded in
--- a/runtime/doc/vim9class.txt
+++ b/runtime/doc/vim9class.txt
@@ -700,7 +700,13 @@ the name, you can define the constructor
 
 	def new(this.name, this.age = v:none, this.gender = v:none)
 	enddef
-<							*E1328*
+<
+When using the default new() method, if the order of the object variables in
+the class is changed later, then all the callers of the default new() method
+needs to change.  To avoid this, the new() method can be explicitly defined
+without any arguments.
+
+							*E1328*
 Note that you cannot use another default value than "v:none" here.  If you
 want to initialize the object variables, do it where they are declared.  This
 way you only need to look in one place for the default values.