Yegappan Lakshmanan
f36bbcd402
patch 9.0.1890: Vim9: lookup code for class/object repaeated
...
Problem: Vim9: lookup code for class/object repaeated
Solution: Refactor and make use of lookup functions
closes : #13067
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-09-10 18:19:06 +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
639751d218
patch 9.0.1805: Vim9: problem compiling object method as function call arg
...
Problem: Vim9: problem compiling object method as function call arg
Solution: After a object/class method call, remove the object/class from
the stack.
closes : #12081
closes : #12929
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-08-27 19:26:16 +02:00
Ernie Rael
5c018bee0e
patch 9.0.1796: Vim9 problems with null_objects
...
Problem: Vim9 problems with null_objects
Solution: Vim9 improve null_object usage
Fix "xvar == null", where xvar might have been assigned null_object.
Fix compilation failure: "var o2: C = null_object".
closes : #12890
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ernie Rael <errael@raelity.com>
2023-08-27 18:40:26 +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
Bram Moolenaar
b7f2270bab
patch 9.0.1492: using uninitialized memory when argument is missing
...
Problem: Using uninitialized memory when argument is missing.
Solution: Check there are sufficient arguments before the base.
(closes #12302 )
2023-04-27 16:24:07 +01:00
Bram Moolenaar
2ed57ac367
patch 9.0.1436: cannot compare a typed variable with v:none
...
Problem: Cannot compare a typed variable with v:none.
Solution: Allow for "x is v:none" and "x isnot v:none". (issue #12194 )
2023-04-01 22:05:38 +01:00
Bram Moolenaar
30a8447715
patch 9.0.1358: compilation error with some compilers
...
Problem: Compilation error with some compilers.
Solution: Avoid using "class" as member name.
2023-02-27 08:07:14 +00:00
Bram Moolenaar
c4e1b86cb0
patch 9.0.1357: using null_object results in an internal error
...
Problem: Using null_object results in an internal error. (Ernie Rael)
Solution: Add instructions for pushing an object and class. (closes #12044 )
2023-02-26 18:58:23 +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
836137d89a
patch 9.0.1260: Coverity warns for possible NULL pointer usage
...
Problem: Coverity warns for possible NULL pointer usage.
Solution: Change the condition.
2023-01-29 14:11:24 +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
Yegappan Lakshmanan
142ed77898
patch 9.0.1246: code is indented more than necessary
...
Problem: Code is indented more than necessary.
Solution: Use an early return where it makes sense. (Yegappan Lakshmanan,
closes #11887 )
2023-01-26 12:00:00 +00:00
Bram Moolenaar
f7d1c6e188
patch 9.0.1211: storing value in interface member does not always work
...
Problem: Storing value in interface member does not always work.
Solution: Convert the index on the interface to the index on the object.
2023-01-16 20:47:57 +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
32517c4c14
patch 9.0.1203: return type of values() is always list<any>
...
Problem: Return type of values() is always list<any>.
Solution: Use the member type if possible. (issue #11822 )
2023-01-15 18:17:12 +00:00
Bram Moolenaar
36818a9daa
patch 9.0.1138: crash when expecting varargs but it is something else
...
Problem: Crash when expecting varargs but it is something else.
Solution: Only use the member when the type is a list. (closes #11774 )
2023-01-03 12:33:26 +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
c4b3f6477c
patch 9.0.1109: leaking allocated type
...
Problem: Leaking allocated type.
Solution: Reset the "static" flag in the allocated type copy.
2022-12-30 10:36:34 +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
c336ae3ce6
patch 9.0.1075: build fails if compiler doesn't allow declaration after case
...
Problem: build fails if the compiler doesn't allow for a declaration right
after "case".
Solution: Add a block.
2022-12-18 22:01:42 +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
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
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
0089ce293f
patch 9.0.0695: failing check for dictionary type for const any
...
Problem: Failing check for dictionary type for const any.
Solution: Check for any type properly. (closes #11310 )
2022-10-08 14:39:36 +01:00
Bram Moolenaar
2eae3d24d7
patch 9.0.0684: skipped :exe command fails compilation on MS-Windows
...
Problem: Skipped :exe command fails compilation on MS-Windows.
Solution: Adjust return value when skipping.
2022-10-07 15:09:27 +01:00
Bram Moolenaar
bdc09a18fc
patch 9.0.0683: cannot specify a time for :echowindow
...
Problem: Cannot specify a time for :echowindow.
Solution: A count can be used to specify the display time. Add
popup_findecho().
2022-10-07 14:31:45 +01:00
Bram Moolenaar
fa1039760e
patch 9.0.0623: error for modifying a const is not detected at compile time
...
Problem: Error for modifying a const is not detected at compile time.
Solution: Add TTFLAG_CONST and check for it in add() and extend().
2022-09-29 19:14:42 +01:00
Bram Moolenaar
cc34181f99
patch 9.0.0502: a closure in a nested loop in a :def function does not work
...
Problem: A closure in a nested loop in a :def function does not work.
Solution: Use an array of loopvars, one per loop level.
2022-09-19 15:54:34 +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
b46c083a5e
patch 9.0.0470: 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: When in a loop and a closure refers to a variable declared in the
loop, prepare for making a copy of variables for each closure.
2022-09-15 17:19:37 +01:00
Bram Moolenaar
169003289f
patch 9.0.0419: the :defer command does not check the function arguments
...
Problem: The :defer command does not check the function argument count and
types.
Solution: Check the function arguments when adding a deferred function.
2022-09-08 19:51:45 +01:00
Yegappan Lakshmanan
6b085b9d73
patch 9.0.0376: clang warns for dead assignments
...
Problem: Clang warns for dead assignments.
Solution: Adjust the code. (Yegappan Lakshmanan, closes #11048 )
2022-09-04 12:47:21 +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
68a635a80a
patch 9.0.0353: missing entry in switch
...
Problem: Missing entry in switch.
Solution: Add ISN_ECHOWINDOW.
2022-09-01 17:26:17 +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
bd3a9d2c94
patch 8.2.4973: Vim9: type error for list unpack mentions argument
...
Problem: Vim9: type error for list unpack mentions argument.
Solution: Mention variable. (close #10435 )
2022-05-17 16:12:39 +01:00
Bram Moolenaar
0abc2871c1
patch 8.2.4930: interpolated string expression requires escaping
...
Problem: Interpolated string expression requires escaping.
Solution: Do not require escaping in the expression.
2022-05-10 13:24:30 +01:00
Bram Moolenaar
c9af617ac6
patch 8.2.4863: accessing freed memory in test without the +channel feature
...
Problem: Accessing freed memory in test without the +channel feature.
(Dominique Pellé)
Solution: Do not generted PUSHCHANNEL or PUSHJOB if they are not
implemented. (closes #10350 )
2022-05-04 16:46:54 +01:00
Bram Moolenaar
06651630ee
patch 8.2.4834: Vim9: some lines not covered by tests
...
Problem: Vim9: some lines not covered by tests.
Solution: Add a few more tests. Remove dead code.
2022-04-27 17:54:25 +01:00
LemonBoy
372bcceeee
patch 8.2.4823: concat more than 2 strings in :def function is inefficient
...
Problem: Concatenating more than 2 strings in a :def function is
inefficient.
Solution: Add a count to the CONCAT instruction. (closes #10276 )
2022-04-25 12:43:20 +01:00
Bram Moolenaar
a6c18d38ca
patch 8.2.4657: errors for functions are sometimes hard to read
...
Problem: Errors for functions are sometimes hard to read.
Solution: Use printable_func_name() in more places.
2022-03-31 20:02:56 +01:00
Bram Moolenaar
ccbfd4883f
patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
...
Problem: Vim9: can't use items from "import autoload" with autoload
directory name.
Solution: Let sn_autoload_prefix overrule sn_import_autoload.
(closes #10054 )
2022-03-31 16:18:23 +01:00
Bram Moolenaar
c0ceeeb839
patch 8.2.4650: "import autoload" only works with using 'runtimepath'
...
Problem: "import autoload" only works with using 'runtimepath'.
Solution: Also support a relative and absolute file name.
2022-03-30 21:12:27 +01:00
Bram Moolenaar
ec15b1cfdc
patch 8.2.4634: Vim9: cannot initialize a variable to null_list
...
Problem: Vim9: cannot initialize a variable to null_list.
Solution: Give negative count to NEWLIST. (closes #10027 )
Also fix inconsistencies in comparing with null values.
2022-03-27 16:29:53 +01:00
Bram Moolenaar
a915fa0103
patch 8.2.4612: Vim9: cannot use a recursive call in a nested function
...
Problem: Vim9: cannot use a recursive call in a nested function. (Sergey
Vlasov)
Solution: Define the funcref before compiling the function. (closes #9989 )
2022-03-23 11:29:15 +00:00