0
0
mirror of https://github.com/vim/vim.git synced 2025-10-07 05:54:16 -04:00
Commit Graph

40 Commits

Author SHA1 Message Date
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