diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2023-08-22 21:29:28 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2023-08-22 21:29:28 +0200 |
commit | 618e47d1cd93954bad26d47e5353b4f1432daa5e (patch) | |
tree | 56be8ec254e3039862771c0a046c7fbb4ac3ffc1 /runtime | |
parent | 8dabccd295271104ad5af0abc48e283d644cff59 (diff) |
patch 9.0.1780: Vim9 type not defined during object creationv9.0.1780
Problem: Vim9 type not defined during object creation
Solution: Define type during object creation and not during class
definition, parse mulit-line member initializers, fix lock
initialization
If type is not specified for a member, set it during object creation
instead of during class definition. Add a runtime type check for the
object member initialization expression
Also, while at it, when copying an object or class, make sure the lock
is correctly initialized.
And finally, parse multi-line member initializers correctly.
closes: #11957
closes: #12868
closes: #12869
closes: #12881
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Co-authored-by: LemonBoy <thatlemon@gmail.com>
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/doc/vim9class.txt | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt index a68b97c87b..c68288a0c5 100644 --- a/runtime/doc/vim9class.txt +++ b/runtime/doc/vim9class.txt @@ -423,6 +423,12 @@ Each member and function name can be used only once. It is not possible to define a function with the same name and different type of arguments. +Member Initialization ~ +If the type of a member is not explicitly specified in a class, then it is set +to "any" during class definition. When an object is instantiated from the +class, then the type of the member is set. + + Extending a class ~ *extends* A class can extend one other class. *E1352* *E1353* *E1354* |