Yegappan Lakshmanan
342f4f626e
patch 9.0.1888: Vim9: Problem trying to invoke class method
...
Problem: Vim9: Problem trying to invoke class method
Solution: Lookup the class method insider other classes
closes : #13055
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-09-09 11:37:23 +02:00
Yegappan Lakshmanan
23c92d93c1
patch 9.0.1887: Vim9: class members are accessible via object
...
Problem: Vim9: class members are accessible via object
Solution: Disable class member variable access using an object
Class methods can be accessed only using the class name and cannot be
accessed using an object. To be consistent with this, do the same for
class member variables also. They can be accessed only using the class
name and not using an object.
closes : #13057
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-09-09 11:33:29 +02:00
Ernie Rael
18143d3111
patch 9.0.1867: Vim9: access to interface statics possible
...
Problem: Vim9: access to interface statics possible
Solution: Prevent direct access to interface statics
closes : #13007
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ernie Rael <errael@raelity.com>
2023-09-04 22:30:41 +02:00
Yegappan Lakshmanan
3775f777a6
patch 9.0.1838: Vim9: Cannot modify class member vars from def function
...
Problem: Vim9: Cannot modify class member vars from def function
Solution: Add support for modifying class member variables from a def
function
closes : #12995
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-09-01 22:05:45 +02:00
Yegappan Lakshmanan
e3b6c78ddc
patch 9.0.1822: Vim9: no check for duplicate members in extended classes
...
Problem: Vim9: no check for duplicate members in extended classes
Solution: Check for duplicate members in extended classes.
Fix memory leak.
closes : #12948
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-08-29 22:34:36 +02:00
Yegappan Lakshmanan
cd7293bf6c
patch 9.0.1804: Vim9: no support for private object methods
...
Problem: Vim9: no support for private object methods
Solution: Add support for private object/class methods
closes : #12920
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-08-27 19:18:23 +02:00
Christian Brabandt
d5475e8d8d
patch 9.0.1732: vimexpr: shadowing variable
...
Problem: vimexpr: shadowing variable
Solution: Rename local variable
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-08-17 23:41:33 +02:00
h-east
2261c89a49
patch 9.0.1724: vim9class constructor argument type checking bug
...
Problem: vim9class constructor argument type checking bug
Solution: fix it
closes : #12816
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: h-east <h.east.727@gmail.com>
2023-08-17 22:31:10 +02:00
Ernie Rael
f77a7f704f
patch 9.0.1375: crash when getting member of obj of unknown class
...
Problem: Crash when getting member of obj of unknown class.
Solution: Check for NULL class and give an error message. (Ernie Rael,
closes #12096 )
2023-03-03 15:05:30 +00:00
Bram Moolenaar
b1e32ac0c9
patch 9.0.1334: using tt_member for the class leads to mistakes
...
Problem: Using tt_member for the class leads to mistakes.
Solution: Add a separate tt_class field.
2023-02-21 12:38:51 +00:00
Bram Moolenaar
3e1ac1443a
patch 9.0.1323: build failure with +eval feature
...
Problem: Build failure with +eval feature.
Solution: Add missing part for using funcerror_T.
2023-02-18 19:49:32 +00:00
Bram Moolenaar
313e4724c3
patch 9.0.1292: :defer may call the wrong method for an object
...
Problem: :defer may call the wrong method for an object. (Ernie Rael)
Solution: When en object is from a class that extends or implements, figure
out the method to call at runtime. (closes #11910 )
2023-02-08 20:55:27 +00:00
Bram Moolenaar
d0200c8631
patch 9.0.1254: calling a method on an interface does not work
...
Problem: Calling a method on an interface does not work.
Solution: At runtime figure out what method to call. (closes #11901 )
2023-01-28 15:19:40 +00:00
Bram Moolenaar
8dbab1d8ce
patch 9.0.1250: cannot use an object method with :defer
...
Problem: Cannot use an object method with :defer. (Ernie Rael)
Solution: Find the object method and generate code to call it.
(closes #11886 )
2023-01-27 20:14:02 +00:00
Bram Moolenaar
62a6923470
patch 9.0.1240: cannot access a private object member in a lambda
...
Problem: Cannot access a private object member in a lambda defined inside
the class.
Solution: Go up the context stack to find the class. (closes #11866 )
2023-01-24 15:07:04 +00:00
Bram Moolenaar
29ac5df37b
patch 9.0.1209: getting interface member does not always work
...
Problem: Getting interface member does not always work.
Solution: Convert the index on the interface to the index on the object.
(closes #11825 )
2023-01-16 19:43:47 +00:00
Bram Moolenaar
912bfee710
patch 9.0.1204: expression compiled the wrong way after using an object
...
Problem: Expression compiled the wrong way after using an object.
Solution: Generate constants before getting the type.
2023-01-15 20:18:55 +00:00
Bram Moolenaar
6aa0937fb8
patch 9.0.1179: not all errors around inheritance are tested
...
Problem: Not all errors around inheritance are tested.
Solution: Add more tests. Fix uncovered problems.
2023-01-11 17:59:38 +00:00
Bram Moolenaar
58b40092e6
patch 9.0.1178: a child class cannot override functions from a base class
...
Problem: A child class cannot override functions from a base class.
Solution: Allow overriding and implement "super".
2023-01-11 15:59:05 +00:00
h-east
01c5f2addf
patch 9.0.1164: evaluating string expression advances function line
...
Problem: Evaluating string expression advances function line.
Solution: Disable function lines while parsing a string expression.
(Hirohito Higashi, closes #11796 )
2023-01-09 15:10:40 +00:00
Bram Moolenaar
3259ff3b3b
patch 9.0.1147: cannot access a class member in a compiled function
...
Problem: Cannot access a class member in a compiled function.
Solution: Implement looking up a class member.
2023-01-04 18:54:09 +00:00
Bram Moolenaar
574950dfb1
patch 9.0.1140: cannot call an object method in a compiled function
...
Problem: Cannot call an object method in a compiled function.
Solution: Compile the instructins to invoke an object method.
2023-01-03 19:08:50 +00:00
Bram Moolenaar
46ab925937
patch 9.0.1139: cannot create a new object in a compiled function
...
Problem: Cannot create a new object in a compiled function.
Solution: Compile the instructins to create a new object.
2023-01-03 14:01:21 +00:00
Bram Moolenaar
bcf31ec36b
patch 9.0.1134: comparing objects uses identity instead of equality
...
Problem: Comparing objects uses identity instead of equality.
Solution: Compare the object values.
2023-01-02 20:32:24 +00:00
Bram Moolenaar
a9fa8c58fb
patch 9.0.1133: error message names do not match the items
...
Problem: Error message names do not match the items.
Solution: Add "_str" when the text contains "%s".
2023-01-02 18:10:04 +00:00
Bram Moolenaar
6acf757c6a
patch 9.0.1127: no error if function argument shadows class member
...
Problem: No error if function argument shadows class member.
Solution: Give an error for shadowing a class member.
2023-01-01 19:53:30 +00:00
Bram Moolenaar
6bafdd41cb
patch 9.0.1123: class function not implemented yet
...
Problem: Class function not implemented yet.
Solution: Implement defining and calling a class function.
2023-01-01 12:58:33 +00:00
Bram Moolenaar
c6951a76a5
patch 9.0.1108: type error when using "any" type and adding to float
...
Problem: Type error when using "any" type and adding a number to a float.
Solution: Accept both a number and a float. (closes #11753 )
2022-12-29 20:56:24 +00:00
Bram Moolenaar
73ade49c4b
patch 9.0.1107: float constant not recognized as float
...
Problem: Float constant not recognized as float.
Solution: Check the vartype instead of comparing with t_float.
(closes #11754 )
2022-12-27 20:54:41 +00:00
Bram Moolenaar
d505d17885
patch 9.0.1074: class members are not supported yet
...
Problem: Class members are not supported yet.
Solution: Add initial support for class members.
2022-12-18 21:42:55 +00:00
Bram Moolenaar
3d473ee1a6
patch 9.0.1060: private and public object members are not implemented yet
...
problem: Private and public object members are not implemented yet.
Solution: Implement private and public object members.
2022-12-14 20:59:32 +00:00
Bram Moolenaar
7ce7daf6cd
patch 9.0.1045: in a class object members cannot be initialized
...
Problem: In a class object members cannot be initialized.
Solution: Support initializing object members. Make "dissassemble" work on
an object method.
2022-12-10 18:42:12 +00:00
Bram Moolenaar
ffdaca9e6f
patch 9.0.1041: cannot define a method in a class
...
Problem: Cannot define a method in a class.
Solution: Implement defining an object method. Make calling an object
method work.
2022-12-09 21:41:48 +00:00
Bram Moolenaar
00b28d6c23
patch 9.0.1031: Vim9 class is not implemented yet
...
Problem: Vim9 class is not implemented yet.
Solution: Add very basic class support.
2022-12-08 15:32:33 +00:00
Bram Moolenaar
adbc08fd69
patch 9.0.0840: cannot change a slice of a const list
...
Problem: Cannot change a slice of a const list. (Takumi KAGIYAMA)
Solution: Remove the const flag from the slice type. (closes #11490 )
2022-11-06 18:27:17 +00:00
dundargoc
c57b5bcd22
patch 9.0.0828: various typos
...
Problem: Various typos.
Solution: Correct typos. (closes #11432 )
2022-11-02 13:30:51 +00:00
Bram Moolenaar
d0fbb41eaa
patch 9.0.0799: in compiled function ->() on next line not recognized
...
Problem: In compiled function ->() on next line not recognized.
Solution: Also check for "(". (closes #11405 )
2022-10-19 18:04:49 +01:00
Bram Moolenaar
4913d420e8
patch 9.0.0778: indexing of unknown const type fails during compilation
...
Problem: Indexing of unknown const type fails during compilation.
Solution: Check for "any" properly. (closes #11389 )
2022-10-17 13:13:32 +01:00
Bram Moolenaar
f8addf1ca1
patch 9.0.0554: using freed memory when command follows lambda
...
Problem: Using freed memory when command follows lambda.
Solution: Don't free what is still in use. (closes #11201 )
2022-09-23 12:44:25 +01:00
Bram Moolenaar
c9e4a6f191
patch 9.0.0504: still a build failure
...
Problem: still a Build failure.
Solution: Add another missing changes. Avoid compiler warning.
2022-09-19 16:08:04 +01:00
Bram Moolenaar
73e28dcc61
patch 9.0.0491: no good reason to build without the float feature
...
Problem: No good reason to build without the float feature.
Solution: Remove configure check for float and "#ifdef FEAT_FLOAT".
2022-09-17 21:08:33 +01:00
Bram Moolenaar
8fa745e7be
patch 9.0.0481: in :def function all closures in loop get the same variables
...
Problem: In a :def function all closures in a loop get the same variables.
Solution: Use a separate list of variables for LOADOUTER and STOREOUTER.
Not copied at end of loop yet.
2022-09-16 19:04:24 +01:00
Bram Moolenaar
f5fec05c7f
patch 9.0.0440: crash when using mkdir() with "R" flag in compiled function
...
Problem: Crash when using mkdir() with "R" flag in compiled function.
Solution: Reserve a variable for deferred function calls. Handle more than
one argument.
2022-09-11 11:49:22 +01:00
Bram Moolenaar
806a273f3c
patch 9.0.0379: cleaning up after writefile() is a hassle
...
Problem: Cleaning up after writefile() is a hassle.
Solution: Add the 'D' flag to defer deleting the written file. Very useful
in tests.
2022-09-04 15:40:36 +01:00
Bram Moolenaar
1d84f7608f
patch 9.0.0370: cleaning up afterwards can make a function messy
...
Problem: Cleaning up afterwards can make a function messy.
Solution: Add the :defer command.
2022-09-03 21:35:53 +01:00
Bram Moolenaar
2984ed31d9
patch 9.0.0230: no error for comma missing in list in :def function
...
Problem: No error for comma missing in list in :def function.
Solution: Check for missing comma. (closes #10943 )
2022-08-20 14:51:17 +01:00
Kota Kato
948a3894d9
patch 9.0.0219: cannot make a funcref with "s:func" in a def function
...
Problem: Cannot make a funcref with "s:func" in a def function in legacy
script.
Solution: Allow for using a lower case function name after "s:". (Kota Kato,
closes #10926 )
2022-08-16 16:09:59 +01:00
Bram Moolenaar
c3caa7f788
patch 8.2.5018: Vim9: some code is not covered by tests
...
Problem: Vim9: some code is not covered by tests.
Solution: Delete dead code.
2022-05-25 19:15:10 +01:00
Bram Moolenaar
68e64d2c17
patch 8.2.5006: asan warns for undefined behavior
...
Problem: Asan warns for undefined behavior.
Solution: Cast the shifted value to unsigned.
2022-05-22 22:07:52 +01:00
Bram Moolenaar
5b529230f1
patch 8.2.5005: compiler warning for uninitialized variable
...
Problem: Compiler warning for uninitialized variable. (John Marriott)
Solution: Initialize the pointer to NULL.
2022-05-22 21:53:26 +01:00