Bram Moolenaar
bb8a7ce0a1
patch 8.2.2747: Vim9: not always an error for too many function arguments
...
Problem: Vim9: not always an error for too many function arguments.
Solution: Check for getting too many arguments.
2021-04-10 20:10:26 +02:00
Bram Moolenaar
962c43bf0d
patch 8.2.2744: Vim9: no way to explicitly ignore an argument
...
Problem: Vim9: no way to explicitly ignore an argument.
Solution: Use the underscore as the name for an ignored argument.
2021-04-10 17:18:09 +02:00
Bram Moolenaar
599410cb3c
patch 8.2.2743: Vim9: function state stuck when compiling with ":silent!"
...
Problem: Vim9: function state stuck when compiling with ":silent!".
Solution: Check for uf_def_status to be UF_COMPILING.
2021-04-10 14:03:43 +02:00
Bram Moolenaar
701cc6ca9e
patch 8.2.2742: Vim9: when compiling a function fails it is cleared
...
Problem: Vim9: when compiling a function fails it is cleared.
Solution: Keep the function lines, prevent execution with a different
status. (closes #8093 )
2021-04-10 13:33:48 +02:00
Bram Moolenaar
1088b69451
patch 8.2.2741: Vim9: Partial call does not check right arguments
...
Problem: Vim9: Partial call does not check right arguments.
Solution: Adjust the offset for whether the partial is before or after the
arguments. (closes #8091 )
2021-04-09 22:12:44 +02:00
Bram Moolenaar
2a38908b05
patch 8.2.2740: Vim9: lambda with varargs doesn't work
...
Problem: Vim9: lambda with varargs doesn't work.
Solution: Make "...name" work. Require type to be a list.
2021-04-09 20:24:31 +02:00
Bram Moolenaar
767034c5b8
patch 8.2.2739: Vim9: a lambda accepts too many arguments at the script level
...
Problem: Vim9: a lambda accepts too many arguments at the script level.
Solution: Do not set uf_varargs in Vim9 script.
2021-04-09 17:24:52 +02:00
Bram Moolenaar
86cdb8a4bd
patch 8.2.2726: confusing error message with white space before comma
...
Problem: Confusing error message with white space before comma in the
arguments of a function declaration.
Solution: Give a specific error message. (closes #2235 )
2021-04-06 19:01:03 +02:00
Bram Moolenaar
e8c4660a55
patch 8.2.2725: Vim9: message about compiling is wrong when using try/catch
...
Problem: Vim9: message about compiling is wrong when using try/catch.
Solution: Store the compiling flag with the message. (closes #8071 )
2021-04-05 22:27:37 +02:00
Bram Moolenaar
0865b15bc6
patch 8.2.2718: Vim9: no explicit test for using a global function without g:
...
Problem: Vim9: no explicit test for using a global function without the g:
prefix.
Solution: Add a test case.
2021-04-05 15:38:51 +02:00
Bram Moolenaar
38a3bfa9a2
patch 8.2.2677: Vim9: cannot use only some of the default arguments
...
Problem: Vim9: cannot use only some of the default arguments.
Solution: Use v:none to use default argument value. Remove
uf_def_arg_idx[], use JUMP_IF_ARG_SET. (closes #6504 )
2021-03-29 22:14:55 +02:00
Bram Moolenaar
2fecb53115
patch 8.2.2650: Vim9: command modifiers not handled in nested function
...
Problem: Vim9: command modifiers not handled in nested function.
Solution: Keep function-local info in a structure and save it on the stack.
2021-03-24 22:00:56 +01:00
Bram Moolenaar
49f1e9ec3e
patch 8.2.2645: using inline function is not properly tested
...
Problem: Using inline function is not properly tested.
Solution: Add test cases, esp. for errors. Minor code improvements.
2021-03-22 20:49:02 +01:00
Bram Moolenaar
5f91e74bf9
patch 8.2.2619: Vim9: no test for return type of lambda
...
Problem: Vim9: no test for return type of lambda.
Solution: Add a test.
2021-03-17 21:29:29 +01:00
Bram Moolenaar
8863bda25d
patch 8.2.2617: Vim9: script variable in block not found by function
...
Problem: Vim9: script variable in a block scope not found by a nested
function.
Solution: Copy the block scope IDs before compiling the function.
2021-03-17 18:42:08 +01:00
Bram Moolenaar
12bce95887
patch 8.2.2590: Vim9: default argument value may cause internal error
...
Problem: Vim9: default argument value may cause internal error.
Solution: Hide later function arguments when compiling the expression.
(closes #7948 )
2021-03-11 20:04:04 +01:00
Bram Moolenaar
608d78fb45
patch 8.2.2576: Vim9: defining a :func function checks for white space
...
Problem: Vim9: defining a :func function checks for white space after a
comma in the arguments.
Solution: Only check for white space in a :def function. (closes #7930 )
2021-03-06 22:33:12 +01:00
Bram Moolenaar
04947cc6ed
patch 8.2.2574: Vim9: crash when calling partial with wrong function
...
Problem: Vim9: crash when calling partial with wrong function.
Solution: Check argument types of called function. (closes #7912 )
2021-03-06 19:26:46 +01:00
Bram Moolenaar
18062fcad6
patch 8.2.2572: Vim9: crash when getting the types for a legacy function
...
Problem: Vim9: crash when getting the types for a legacy function.
Solution: Initialize the type list growarray. (closes #7929 )
2021-03-05 21:35:47 +01:00
Bram Moolenaar
057e84afe5
patch 8.2.2558: no error if a lambda argument shadows a variable
...
Problem: No error if a lambda argument shadows a variable.
Solution: Check that the argument name shadows a local, argument or script
variable. (closes #7898 )
2021-02-28 16:55:11 +01:00
Bram Moolenaar
b4893b8450
patch 8.2.2540: Vim9: no error for using script var name for argument
...
Problem: Vim9: no error for using script var name for argument.
Solution: Check for this error. (closes #7868 )
2021-02-21 22:20:24 +01:00
Bram Moolenaar
03dfde2b5f
patch 8.2.2512: Vim9: compiling error test sometimes fails
...
Problem: Vim9: compiling error test sometimes fails.
Solution: use WaitForAssert() instead of sleeping for a bit. (Dominique
Pellé, closes #7837 )
2021-02-14 13:17:22 +01:00
Bram Moolenaar
31842cd077
patch 8.2.2505: Vim9: crash after defining function with invalid return type
...
Problem: Vim9: crash after defining function with invalid return type.
Solution: Clear function growarrays. Fix memory leak.
2021-02-12 22:10:21 +01:00
Bram Moolenaar
44ec21c467
patch 8.2.2504: Vim9: crash when using an argument from a closure
...
Problem: Vim9: crash when using an argument from a closure.
Solution: Check if gen_load_outer is NULL. (closes #7821 )
2021-02-12 21:50:57 +01:00
Bram Moolenaar
4f53b79bf5
patch 8.2.2481: Vim9: confusing error when variable arguments have default
...
Problem: Vim9: confusing error when variable arguments have a default
value.
Solution: Give a specific error message. (closes #7793 )
2021-02-07 15:59:49 +01:00
Bram Moolenaar
0346b799fc
patch 8.2.2445: Vim9: no proper error for lambda missing return type
...
Problem: Vim9: no proper error for lambda missing return type.
Solution: Check for this error. (closes #7758 )
2021-01-31 22:18:29 +01:00
Bram Moolenaar
4efd994829
patch 8.2.2405: Vim9: no need to allow white space before "(" for :def
...
Problem: Vim9: no need to allow white space before "(" for :def.
Solution: Give an error for stray white space. (issue #7734 )
2021-01-24 21:14:20 +01:00
Bram Moolenaar
e32e516dfa
patch 8.2.2387: runtime type check does not mention argument index
...
Problem: Runtime type check does not mention argument index.
Solution: Add ct_arg_idx. (closes #7720 )
2021-01-21 20:21:29 +01:00
Bram Moolenaar
f904133e1a
patch 8.2.2386: Vim9: crash when using ":silent! put"
...
Problem: Vim9: crash when using ":silent! put".
Solution: When ignoring an error for ":silent!" rewind the stack and skip
ahead to restoring the cmdmod. (closes #7717 )
2021-01-21 19:41:16 +01:00
Bram Moolenaar
f898f7c68d
patch 8.2.2364: Vim9: line break in lambda accesses freed memory
...
Problem: Vim9: line break in lambda accesses freed memory.
Solution: Make a copy of the return type. (closes #7664 )
2021-01-16 18:09:52 +01:00
Bram Moolenaar
648ea76e1d
patch 8.2.2357: Vim9: crash when parsing function return type fails
...
Problem: Vim9: crash when parsing function return type fails.
Solution: Bail out and set return type to "unknown". (closes #7685 )
2021-01-15 19:04:32 +01:00
Bram Moolenaar
75ab91ff34
patch 8.2.2325: Vim9: crash if map() changes the item type
...
Problem: Vim9: crash if map() changes the item type.
Solution: Check that the item type is still OK. (closes #7652 )
Fix problem with mapnew() on range list.
2021-01-10 22:42:50 +01:00
Bram Moolenaar
0186e58639
patch 8.2.2322: Vim9: closure nested limiting to one level
...
Problem: Vim9: closure nested limiting to one level.
Solution: Add outer_T. Also make STOREOUTER work.
2021-01-10 18:33:11 +01:00
Bram Moolenaar
ab360526ef
patch 8.2.2321: Vim9: cannot nest closures
...
Problem: Vim9: cannot nest closures.
Solution: Add the nesting level to ISN_LOADOUTER and ISN_STOREOUTER.
(closes #7150 , closes #7635 )
2021-01-10 14:02:28 +01:00
Bram Moolenaar
b657198cb3
patch 8.2.2316: Vim9: cannot list a lambda function
...
Problem: Vim9: cannot list a lambda function.
Solution: Support the <lambda>9 notation, like :disassemble. (closes #7634 )
2021-01-08 22:24:19 +01:00
Bram Moolenaar
832ea89ca9
patch 8.2.2315: Vim9: "enddef" as dict key misintepreted as function end
...
Problem: Vim9: "enddef" as dict key misintepreted as function end.
Solution: Check for following colon. (closes #7640 )
2021-01-08 21:55:26 +01:00
Bram Moolenaar
328eac2b5d
patch 8.2.2308: Vim9: no error when assigning lambda to funcref
...
Problem: Vim9: no error when assigning lambda to funcref without return
value.
Solution: Default return value to "any". (closes #7629 )
2021-01-07 19:23:08 +01:00
Bram Moolenaar
32b3f82010
patch 8.2.2306: Vim9: when using function reference type is not checked
...
Problem: Vim9: when using function reference type is not checked.
Solution: When using a function reference lookup the type and check the
argument types. (issue #7629 )
2021-01-06 21:59:39 +01:00
Bram Moolenaar
cef1270dec
patch 8.2.2298: Vim9: comment right after "(" of function not recognized
...
Problem: Vim9: comment right after "(" of function not recognized.
Solution: Do not skip over white space before calling get_function_args().
(closes #7613 )
2021-01-04 14:09:43 +01:00
Bram Moolenaar
e68b02a1c4
patch 8.2.2283: Vim9: crash when lambda has fewer arguments than expected
...
Problem: Vim9: crash when lambda has fewer arguments than expected.
Solution: Don't check arguments when already failed. (closes #7606 )
2021-01-03 13:09:51 +01:00
Bram Moolenaar
b8ba9b9197
patch 8.2.2265: error message for missing endfunc/enddef is last line
...
Problem: Error message for missing endfunc/enddef is last line.
Solution: Report the line where the function starts. (closes #7582 )
2021-01-01 18:54:34 +01:00
Bram Moolenaar
5178b1b02f
patch 8.2.2264: Vim9: no error for mismatched :endfunc or :enddef
...
Problem: Vim9: no error for mismatched :endfunc or :enddef.
Solution: Check for the mismatch. (issue #7582 )
2021-01-01 18:43:51 +01:00
Bram Moolenaar
2949cfdbe4
patch 8.2.2257: Vim9: using -> for lambda is ambiguous
...
Problem: Vim9: using -> for lambda is ambiguous.
Solution: Stop supporting ->, must use =>.
2020-12-31 21:28:47 +01:00
Bram Moolenaar
adc8e44645
patch 8.2.2256: Vim9: cannot use function( after line break in :def function
...
Problem: Vim9: cannot use function( after line break in :def function.
Solution: Check for "(" after "function". (closes #7581 )
2020-12-31 18:28:18 +01:00
Bram Moolenaar
1dcf55d4f1
patch 8.2.2195: failing tests for :const
...
Problem: Failing tests for :const.
Solution: Add missing check for ASSIGN_FINAL.
2020-12-22 22:07:30 +01:00
Bram Moolenaar
89b474dd4f
patch 8.2.2194: Vim9: cannot use :const or :final at the script level
...
Problem: Vim9: cannot use :const or :final at the script level.
Solution: Support using :const and :final. (closes #7526 )
2020-12-22 21:19:39 +01:00
Bram Moolenaar
3bdc90b7df
patch 8.2.2193: Vim9: can change constant in :def function
...
Problem: Vim9: can change constant in :def function.
Solution: Check if a variable is locked. (issue #7526 )
2020-12-22 20:35:40 +01:00
Bram Moolenaar
58a52f215a
patch 8.2.2191: Vim9: using wrong name with lambda in nested function
...
Problem: Vim9: using wrong name with lambda in nested function.
Solution: Copy the lambda name earlier. (closes #7525 )
2020-12-22 18:56:55 +01:00
Bram Moolenaar
077a42318c
patch 8.2.2190: Vim9: crash when compiled with EXITFREE
...
Problem: Vim9: crash when compiled with EXITFREE.
Solution: Check that df_ufunc is not NULL.
2020-12-22 18:33:27 +01:00
Bram Moolenaar
cd45ed03bf
patch 8.2.2188: Vim9: crash when calling global function from :def function
...
Problem: Vim9: crash when calling global function from :def function.
Solution: Set the outer context. Define the partial for the context on the
original function. Use a refcount to keep track of which ufunc is
using a dfunc. (closes #7525 )
2020-12-22 17:35:54 +01:00