Christian Brabandt
e4a450a87b
patch 9.0.2157: Vim9: incorrectly parses :def func definitions
...
Problem: Vim9: incorrectly parses :def func definitions
Solution: check for more context when parsing function args
Signed-off-by: Christian Brabandt <cb@256bit.org >
Incorrectly parses def function definitions
Vim currently allows to define the following vim9 function:
def Func(f=
)
enddef
It currently thinks a Lambda is following the `=` but it doesn't check,
that there is actually an expression following. So when such a think is
encountered, remember that an expression should be following.
If no expression is coming in the next few lines, fail parsing the
function arguments, which will Vim no longer accept such a function.
Signed-off-by: Christian Brabandt <cb@256bit.org >
2023-12-11 17:50:08 +01:00
Yegappan Lakshmanan
668971958c
patch 9.0.2152: Using type unknown for List/Dict containers
...
Problem: Using type unknown for List/Dict containers
Solution: Use 'any' instead
fixes : #13582
closes : #13625
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com >
Signed-off-by: Christian Brabandt <cb@256bit.org >
2023-12-05 15:51:50 +01:00
Ernie Rael
3ec6c1fe3b
patch 9.0.2057: Vim9: no strict type checks for funcrefs varargs
...
Problem: Vim9: no strict type checks for funcrefs varargs
Solution: Perform strict type checking when declaring funcrefs
with vararg declaration, add tests
closes : #13397
Signed-off-by: Christian Brabandt <cb@256bit.org >
Co-authored-by: Ernie Rael <errael@raelity.com >
2023-10-21 11:45:38 +02:00
Ernie Rael
96952b2e98
patch 9.0.2043: Vim9: issue with funcref assignmentand varargs
...
Problem: Vim9: issue with funcref assignmentand varargs
Solution: Fix funcref type checking
closes : #13351
Signed-off-by: Christian Brabandt <cb@256bit.org >
Co-authored-by: Ernie Rael <errael@raelity.com >
2023-10-17 18:15:01 +02:00
Yegappan Lakshmanan
29bb67f1be
patch 9.0.2019: Vim9: no support for funcrefs
...
Problem: Vim9: no support for funcrefs
Solution: Add support for object/class funcref members
closes : #11981 #12417 #12960 #12324 #13333
Signed-off-by: Christian Brabandt <cb@256bit.org >
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com >
2023-10-14 11:18:50 +02:00
Bram Moolenaar
d4a9b7f614
patch 9.0.1573: error for function name has wrong line number
...
Problem: Error for function name has wrong line number.
Solution: Set the line number before giving the error.
2023-05-23 14:48:42 +01:00
Bram Moolenaar
2ba51236fb
patch 9.0.1559: function argument types not always checked
...
Problem: Function argument types not always checked and using v:none may
cause an error.
Solution: Check argument types once the function type is known. Do not give
an error for using v:none as an argument. (closes #12200 )
2023-05-15 16:22:38 +01:00
Bram Moolenaar
cf2610c82b
patch 9.0.1556: Vim9: error for missing "return" after "throw"
...
Problem: Vim9: error for missing "return" after "throw".
Solution: Set had_return flag for "throw". (closes #12262 )
2023-05-14 19:59:59 +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
3f45d67a15
patch 9.0.1363: crash when :def function has :break in skipped block
...
Problem: Crash when :def function has :break in skipped block. (Ernie Rael)
Solution: Don't generate a jump for a skipped :break. (closes #12077 )
2023-02-27 22:06:51 +00:00
Bram Moolenaar
94722c5107
patch 9.0.1257: code style is not check in test scripts
...
Problem: Code style is not check in test scripts.
Solution: Add basic code style check for test files.
2023-01-28 19:19:03 +00:00
Bram Moolenaar
47bba53bdb
patch 9.0.1224: cannot call a :def function with a number for float argument
...
Problem: Cannot call a :def function with a number for a float argument.
Solution: Accept a number as well, convert it to a float.
2023-01-20 18:49:46 +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
39c82ea656
patch 9.0.1130: unexpected output when autoloading a script
...
Problem: Unexpected output when autoloading a script for an interactive
operation.
Solution: Reset "KeyTyped" while loading a script and when handling a nested
function. (closes #11773 )
2023-01-02 13:08:01 +00:00
Bram Moolenaar
0d89d8ae89
patch 9.0.1119: type of arguments not checked when calling a partial
...
Problem: Type of arguments not checked when calling a partial.
Solution: Give an error for a wrong argument type. (closes #11753 )
2022-12-31 14:01:24 +00:00
Bram Moolenaar
56310d38d8
patch 9.0.1104: invalid memory access when checking function argument types
...
Problem: Invalid memory access when checking function argument types.
Solution: Do not check beyond the number of arguments. (closes #11755 )
2022-12-27 17:25:05 +00:00
mityu
500c444283
patch 9.0.0992: Vim9 script: get E1096 when comment follows return
...
Problem: Vim9 script: get E1096 when comment follows return.
Solution: Adjust condition for return without expression. (closes #11654 )
2022-12-02 18:12:05 +00:00
Bram Moolenaar
3558afe9e9
patch 9.0.0742: reading past end of the line when compiling a function
...
Problem: Reading past end of the line when compiling a function with
errors.
Solution: Do not return an invalid pointer. Fix skipping redirection.
2022-10-13 16:12:57 +01:00
Bram Moolenaar
cfb4d4f312
patch 9.0.0630: in Vim9 script a numbered function cannot be called
...
Problem: In Vim9 script a numbered function cannot be called.
Solution: Do not require "g:" before a numbered function name.
(closes #11254 )
2022-09-30 19:19:04 +01:00
Bram Moolenaar
259a741044
patch 9.0.0557: valgrind reports possibly leaked memory
...
Problem: Valgrind reports possibly leaked memory.
Solution: Move the problematic test function to the "fails" test file to
avoid obscuring real memory leaks.
2022-09-23 16:11:37 +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
f5f4e85f01
patch 9.0.0553: no error for "|" after "{" in lamda
...
Problem: No error for "|" after "{" in lamda.
Solution: Check for invalid "|". (closes #11199 )
2022-09-22 22:03:14 +01:00
Bram Moolenaar
766ae5b252
patch 9.0.0460: loop variable can't be found
...
Problem: Loop variable can't be found.
Solution: Adjust block_id of the loop variable each round.
2022-09-14 00:30:51 +01:00
Bram Moolenaar
c069edeab2
patch 9.0.0441: closure in for loop test fails on some systems
...
Problem: Closure in for loop test fails on some systems.
Solution: Do not wait for the ruler to show up. (issue #11106 )
2022-09-11 12:01:04 +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
6de2296e5e
patch 9.0.0432: crash when using for loop variable in closure
...
Problem: Crash when using for loop variable in closure.
Solution: Check that the variable wasn't deleted. (issue #11094 )
2022-09-09 21:35:36 +01:00
Bakudankun
375141e1f8
patch 9.0.0430: cannot use repeat() with a blob
...
Problem: Cannot use repeat() with a blob.
Solution: Implement blob repeat. (closes #11090 )
2022-09-09 18:46:47 +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
Dominique Pelle
f240395fca
patch 9.0.0334: test does not properly clean up
...
Problem: Test does not properly clean up.
Solution: Fix typo in argument of delete(). (Dominique Pellé, closes #11010 )
2022-08-30 18:42:16 +01:00
Bram Moolenaar
3b0d70f4ff
patch 9.0.0323: using common name in tests leads to flaky tests
...
Problem: Using common name in tests leads to flaky tests.
Solution: Rename files and directories to be more specific.
2022-08-29 22:31:20 +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
Bram Moolenaar
62e0e2e54b
patch 9.0.0229: Vim9: error message for missing type is not clear
...
Problem: Vim9: error message for missing type is not clear.
Solution: Mention the context. (issue #10944 )
2022-08-20 12:07:58 +01:00
Bram Moolenaar
1889f499a4
patch 9.0.0221: accessing freed memory if compiling nested function fails
...
Problem: Accessing freed memory if compiling nested function fails.
Solution: Mess up the variable name so that it won't be found.
2022-08-16 19:34:44 +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
ad6d9cc679
patch 9.0.0174: no error for using "#{ comment" in a compiled function
...
Problem: No error for using "#{ comment" in a compiled function.
Solution: Make error checking for "#{" consistent. (closes #10855 )
2022-08-08 21:43:11 +01:00
Bram Moolenaar
bd683e3a79
patch 9.0.0056: wrong line number reported when :cexpr fails in :def function
...
Problem: Wrong line number reported when :cexpr fails in :def function.
Solution: Set line_number before executing :cexpr. (closes #10735 )
2022-07-18 17:49:03 +01:00
Bram Moolenaar
31d9948e3a
patch 8.2.5026: Vim9: a few lines not covered by tests
...
Problem: Vim9: a few lines not covered by tests.
Solution: Delete dead code. Add a few test cases. make "12->func()" work.
2022-05-26 22:24:43 +01:00
Bram Moolenaar
bce69d65dd
patch 8.2.4998: Vim9: crash when using multiple funcref()
...
Problem: Vim9: crash when using multiple funcref().
Solution: Check if varargs type is NULL. (closes #10467 )
2022-05-22 13:45:52 +01:00
Bram Moolenaar
d881d15984
patch 8.2.4948: cannot use Perl heredoc in nested :def function
...
Problem: Cannot use Perl heredoc in nested :def function. (Virginia
Senioria)
Solution: Only concatenate heredoc lines when not in a nested function.
(closes #10415 )
2022-05-13 13:50:36 +01:00
Bram Moolenaar
a7583c42cd
patch 8.2.4912: using execute() to define a lambda doesn't work
...
Problem: Using execute() to define a lambda doesn't work. (Ernie Rael)
Solution: Put the getline function in evalarg. (closes #10375 )
2022-05-07 21:14:05 +01:00
Bram Moolenaar
ec89223478
patch 8.2.4892: test failures because of changed error messages
...
Problem: Test failures because of changed error messages.
Solution: Adjust the exptected error messages.
2022-05-06 17:53:06 +01:00
Yegappan Lakshmanan
7c7e19cf50
patch 8.2.4716: memory allocation failure not tested when defining a function
...
Problem: Memory allocation failure not tested when defining a function.
Solution: Add a test. (Yegappan Lakshmanan, closes #10127 )
2022-04-09 11:09:07 +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
Bram Moolenaar
efd73ae5d2
patch 8.2.4601: Vim9: not enough test coverage for executing :def function
...
Problem: Vim9: not enough test coverage for executing :def function.
Solution: Add a few more tests.
2022-03-20 18:51:00 +00:00
Bram Moolenaar
1d9cef769d
patch 8.2.4586: Vim9: no error for using lower case name for "func" argument
...
Problem: Vim9: no error for using lower case name for "func" argument.
(Ernie Rael)
Solution: Check the name as soon as the type is known.
2022-03-17 16:30:03 +00:00
Bram Moolenaar
21dc8f1527
patch 8.2.4580: Vim9: incorrect error for shadowing variable
...
Problem: Vim9: incorrect error for shadowing variable.
Solution: Do not pass the context when compiling a referenced function.
2022-03-16 17:54:17 +00:00
Bram Moolenaar
1a572e9b3b
patch 8.2.4572: Vim9: return type "any" is changed to first returned type
...
Problem: Vim9: return type "any" is sometimes changed to first returned
type. (Virginia Senioria)
Solution: Do not change the return type if declared as "any". (closes #9949 )
2022-03-15 12:28:10 +00:00
Bram Moolenaar
badf04f5c2
patch 8.2.4554: Vim9: using null values not sufficiently tested
...
Problem: Vim9: using null values not sufficiently tested.
Solution: Add more tests. Fix uncovered problem.
2022-03-12 21:28:22 +00:00
Bram Moolenaar
fb43cfc2c6
patch 8.2.4548: script-local function is deleted when used in a funcref
...
Problem: Script-local function is deleted when used in a funcref.
Solution: Do not consider a function starting with "<SNR>" reference
counted. (closes #9916 , closes #9820 )
2022-03-11 18:54:17 +00:00
Bram Moolenaar
ed0c62e7b1
patch 8.2.4529: Vim9: comparing partial with function fails
...
Problem: Vim9: comparing partial with function fails.
Solution: Support this comparison. Avoid a crash. (closes #9909 )
Add more test cases.
2022-03-08 19:43:55 +00:00