runtime(doc): update todo items (#13631)
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
GitHub
parent
0280c0b9af
commit
563e6440bf
@ -124,12 +124,6 @@ Further Vim9 improvements:
|
|||||||
- Classes and Interfaces. See |vim9-classes|
|
- Classes and Interfaces. See |vim9-classes|
|
||||||
- "final" object members - can only be set in the constructor.
|
- "final" object members - can only be set in the constructor.
|
||||||
- Cannot use class type of itself in the method (Issue #12369)
|
- 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.
|
- Getting member of variable with "any" type should be handled at runtime.
|
||||||
Remove temporary solution from #12096 / patch 9.0.1375.
|
Remove temporary solution from #12096 / patch 9.0.1375.
|
||||||
- "obj.Method()" does not always work in a compiled function, assumes "obj"
|
- "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
|
Issue #11822: any.Func() can be a dict or an object call, need to handle
|
||||||
this at runtime. Also see #12198 for an example.
|
this at runtime. Also see #12198 for an example.
|
||||||
Possibly issue #11981 can be fixed at the same time (has two examples).
|
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
|
- Make ":defcompile ClassName" compile all functions and methods in the
|
||||||
class.
|
class.
|
||||||
- Forward declaration of a class? E.g. for Clone() function.
|
- Forward declaration of a class? E.g. for Clone() function.
|
||||||
Email lifepillar 2023 Mar 26
|
Email lifepillar 2023 Mar 26
|
||||||
- object empty(), len() - can class define a method to be used for them?
|
- 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
|
- 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
|
later (using a typedef). #12006
|
||||||
@ -157,7 +148,6 @@ Further Vim9 improvements:
|
|||||||
- More efficient way for interface member index than iterating over list?
|
- More efficient way for interface member index than iterating over list?
|
||||||
- a variant of type() that returns a different type for each class?
|
- a variant of type() that returns a different type for each class?
|
||||||
list<number> and list<string> should also differ.
|
list<number> and list<string> should also differ.
|
||||||
- implement :type
|
|
||||||
- implement :enum
|
- implement :enum
|
||||||
- Promise class, could be used to wait on a popup close callback?
|
- Promise class, could be used to wait on a popup close callback?
|
||||||
- class local to a function
|
- class local to a function
|
||||||
@ -166,6 +156,8 @@ Further Vim9 improvements:
|
|||||||
- When evaluating constants for script variables, some functions could work:
|
- When evaluating constants for script variables, some functions could work:
|
||||||
has(featureName), len(someString)
|
has(featureName), len(someString)
|
||||||
- Implement as part of an expression: ++expr, --expr, expr++, expr--.
|
- 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:
|
Information missing in terminfo:
|
||||||
- Codes used for focus gained and lost termcodes are hard-coded in
|
- Codes used for focus gained and lost termcodes are hard-coded in
|
||||||
|
|||||||
@ -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)
|
def new(this.name, this.age = v:none, this.gender = v:none)
|
||||||
enddef
|
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
|
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
|
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.
|
way you only need to look in one place for the default values.
|
||||||
|
|||||||
Reference in New Issue
Block a user