]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(doc): update todo items (#13631)
authorYegappan Lakshmanan <4298407+yegappan@users.noreply.github.com>
Tue, 5 Dec 2023 16:19:06 +0000 (08:19 -0800)
committerGitHub <noreply@github.com>
Tue, 5 Dec 2023 16:19:06 +0000 (17:19 +0100)
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/doc/todo.txt
runtime/doc/vim9class.txt

index 3a7b6ef755eb35d128f951027d8e72d40b2a37cf..5e844a0b0376ce00f7f38d084da5deb1a6193bcb 100644 (file)
@@ -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
index e81ccc575096c894f51c2a9fff26d3f31bde18cd..f7ce914628a647d2672455e06b65d1b423a9e70b 100644 (file)
@@ -700,7 +700,13 @@ the name, you can define the constructor like this: >
 
        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.