Bram Moolenaar
ae3205aa55
patch 9.0.1205: crash when handling class that extends another class
...
Problem: Crash when handling class that extends another class with more
than one object members.
Solution: Correct pointer computations. (closes #11824 )
2023-01-15 20:49:00 +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
f450804e14
patch 9.0.1202: crash when iterating over list of objects
...
Problem: Crash when iterating over list of objects.
Solution: Do not make a copy of tt_member for object or class.
(closes #11823 )
2023-01-15 16:54:57 +00:00
Bram Moolenaar
4cae845ce3
patch 9.0.1201: assignment with operator doesn't work in object method
...
Problem: Assignment with operator doesn't work in object method.
Solution: Handle loading the object member. (closes #11820 ) Add a few more
tests.
2023-01-15 15:51:48 +00:00
Bram Moolenaar
24a8d06d7f
patch 9.0.1198: abstract class not supported yet
...
Problem: Abstract class not supported yet.
Solution: Implement abstract class and add tests.
2023-01-14 13:12:06 +00:00
Bram Moolenaar
d40f00cb43
patch 9.0.1192: no error when class function argument shadows a member
...
Problem: No error when class function argument shadows a member.
Solution: Check for shadowing.
2023-01-13 17:36:49 +00:00
Bram Moolenaar
c0c2c26265
patch 9.0.1188: return value of type() for class and object unclear
...
Problem: Return value of type() for class and object unclear.
Solution: Add v:t_object and v:t_class.
2023-01-12 21:08:53 +00:00
Bram Moolenaar
4059400993
patch 9.0.1186: imported class does not work when used twice in a line
...
Problem: Imported class does not work when used twice in a line.
Solution: Fix the type parsing.
2023-01-12 20:04:51 +00:00
Bram Moolenaar
a86655af84
patch 9.0.1185: using class from imported script not tested
...
Problem: Using class from imported script not tested.
Solution: Add tests. Implement what is missing.
2023-01-12 17:06:27 +00:00
Bram Moolenaar
a94bd9d939
patch 9.0.1184: interface of an object is not recognized when checking type
...
Problem: Interface of an object is not recognized when checking type.
Solution: Use the interface implemented by an object.
2023-01-12 15:01:32 +00:00
Bram Moolenaar
6481accd40
patch 9.0.1181: class inheritance and typing insufficiently tested
...
Problem: Class inheritance and typing insufficiently tested.
Solution: Add more tests. Implement missing behavior.
2023-01-11 21:14:17 +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
Bram Moolenaar
8367716a6e
patch 9.0.1159: extends argument for class not implemented yet
...
Problem: Extends argument for class not implemented yet.
Solution: Basic implementation of "extends".
2023-01-08 19:54:10 +00:00
Bram Moolenaar
df8f947359
patch 9.0.1157: "implements" only handles one interface name
...
Problem: "implements" only handles one interface name.
Solution: Handle a comma separated list of names. Check for duplicate
names.
2023-01-07 14:51:03 +00:00
Bram Moolenaar
eca2c5fff6
patch 9.0.1155: cannot use a class as a type
...
Problem: Cannot use a class as a type.
Solution: Accept a class and interface name as a type.
2023-01-07 12:08:41 +00:00
Bram Moolenaar
94674f2223
patch 9.0.1152: class "implements" argument not implemented
...
Problem: Class "implements" argument not implemented.
Solution: Implement "implements" argument. Add basic checks for when a
class implements an interface.
2023-01-06 18:42:20 +00:00
Bram Moolenaar
554d031302
patch 9.0.1150: :interface is not implemented yet
...
Problem: :interface is not implemented yet.
Solution: Implement the basics of :interface.
2023-01-05 19:59:18 +00:00
Bram Moolenaar
cf760d50dc
patch 9.0.1149: class members may be garbage collected
...
Problem: Class members may be garbage collected.
Solution: Mark class members as being in use.
2023-01-05 13:16:04 +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
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
9f2d97efe2
patch 9.0.1122: class member access is not fully tested yet
...
Problem: Class member access is not fully tested yet.
Solution: Add more tests.
2022-12-31 19:01:02 +00:00
Bram Moolenaar
6ef5471afa
patch 9.0.1095: using freed memory when declaration fails
...
Problem: Using freed memory when declaration fails. (Yegappan Lakshmanan)
Solution: After unreferencing an object set the reference to NULL.
2022-12-25 19:31:36 +00:00
Bram Moolenaar
590162cae0
patch 9.0.1093: using freed memory of object member
...
Problem: Using freed memory of object member. (Yegappan Lakshmanan)
Solution: Make a copy of the object member when getting it.
2022-12-24 21:24:06 +00:00
Bram Moolenaar
f54cedd676
patch 9.0.1091: assignment to non-existing member causes a crash
...
Problem: Assignment to non-existing member causes a crash. (Yegappan
Lakshmanan)
Solution: Give an error message and bail out when a member cannot be found.
2022-12-23 17:56:27 +00:00
Bram Moolenaar
418b547881
patch 9.0.1083: empty and comment lines in a class cause an error
...
Problem: Empty and comment lines in a class cause an error.
Solution: Skip empty and comment lines. (closes #11734 )
2022-12-20 13:38:22 +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
91c9d6d772
patch 9.0.1058: string value of class and object do not have information
...
Problem: String value of class and object do not have useful information.
Solution: Add the class name and for the object the member values.
2022-12-14 17:30:37 +00:00
Bram Moolenaar
74e1274edf
patch 9.0.1054: object member can't get type from initializer
...
Problem: Object member can't get type from initializer.
Solution: If there is no type specified try to use the type of the
initializer. Check for a valid type.
2022-12-13 21:14:28 +00:00
Bram Moolenaar
65b0d16768
patch 9.0.1053: default constructor arguments are not optional
...
Problem: Default constructor arguments are not optional.
Solution: Use "= v:none" to make constructor arguments optional.
2022-12-13 18:43:22 +00:00
Bram Moolenaar
3ea8a1b129
patch 9.0.1046: class method disassemble test fails on MS-Windows
...
Problem: Class method disassemble test fails on MS-Windows.
Solution: Do not match with a specific size.
2022-12-10 19:03:51 +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
d28d7b94f5
patch 9.0.1035: object members are not being marked as used
...
Problem: Object members are not being marked as used, garbage collection
may free them.
Solution: Mark object members as used. Fix reference counting.
2022-12-08 20:42:00 +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