Skip to content

Commit ceffca6

Browse files
authored
runtime(todo): Update Vim9 class items (#13148)
Signed-off-by: Christian Brabandt <[email protected]>
1 parent c3b315f commit ceffca6

1 file changed

Lines changed: 8 additions & 19 deletions

File tree

runtime/doc/todo.txt

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -120,49 +120,38 @@ Upcoming larger works:
120120
- example plugin: https://github.com/uga-rosa/dps-vsctm.vim
121121

122122

123-
Further Vim9 improvements, possibly after launch:
123+
Further Vim9 improvements:
124124
- Classes and Interfaces. See |vim9-classes|
125-
- Change access: public by default, private by prefixing "_".
126-
Check for error: can't have same name twice (ignoring "_" prefix).
127-
- Private methods?
128-
either: private def Func()
129-
or: def _Func()
130-
Perhaps use "private" keyword instead of "_" prefix?
131125
- "final" object members - can only be set in the constructor.
132-
- Support export/import of classes and interfaces.
133126
- Cannot use class type of itself in the method (Issue #12369)
134127
- Cannot use an object method in a lambda #12417
135128
Define all methods before compiling them?
136129
- Cannot call class member of funcref type (Issue #12324)
137130
Also #12081 first case.
138131
- Using list of functions does not work #12081 (repro in later message).
139132
- First argument of call() cannot be "obj.Func". (#11865)
140-
- null_object - constant type 17 not supported (Issue #12043)
141-
- problem compiling object method call as function call argument (Issue
142-
#12081)
143-
- Make ":defcompile ClassName" compile all functions and methods in the
144-
class.
145-
- Forward declaration of a class? E.g. for Clone() function.
146-
email lifepillar 2023 Mar 26
147133
- Getting member of variable with "any" type should be handled at runtime.
148134
Remove temporary solution from #12096 / patch 9.0.1375.
149135
- "obj.Method()" does not always work in a compiled function, assumes "obj"
150136
is a dictionary. #12196 Issue #12024 might be the same problem.
151137
Issue #11822: any.Func() can be a dict or an object call, need to handle
152138
this at runtime. Also see #12198 for an example.
153139
Possibly issue #11981 can be fixed at the same time (has two examples).
154-
- accept line breaks in member initialization. #11957
140+
- Support export/import of classes and interfaces.
141+
- Make ":defcompile ClassName" compile all functions and methods in the
142+
class.
143+
- Forward declaration of a class? E.g. for Clone() function.
144+
Email lifepillar 2023 Mar 26
155145
- object empty(), len() - can class define a method to be used for them?
156146
- add to help: when using a default new() method then reordering object
157147
members may cause trouble. Can define new() without arguments to avoid.
158-
- TODO items: check types for "implements" - members and methods
159148
- When "Meta" is a class, is "const MetaAlias = Meta" allowed? It should
160-
either work or given an error. possibly give an error now and implement it
149+
either work or given an error. Possibly give an error now and implement it
161150
later (using a typedef). #12006
162151
- how about lock/unlock?
163-
- When checking "implements" also check types of members and function args.
164152
- For chaining, allow using the class name as type for function return
165153
value.
154+
- Implement "specifies" interface
166155
- Implement generics
167156
- Add "assignable" (class or child)?
168157
- More efficient way for interface member index than iterating over list?

0 commit comments

Comments
 (0)