Bram Moolenaar
f112f30a82
patch 8.2.2170: Vim9: a global function defined in a :def function fails
...
Problem: Vim9: a global function defined in a :def function fails if it
uses the context.
Solution: Create a partial to store the closure context. (see #7410 )
2020-12-20 17:47:52 +01:00
Bram Moolenaar
57f799e6a4
patch 8.2.2134: Vim9: get E1099 when autocmd triggered in builtin function
...
Problem: Vim9: get E1099 when autocmd triggered in builtin function.
Solution: Check that did_emsg increased instead of checking that it changed.
(closes #7448 )
2020-12-12 20:42:19 +01:00
Bram Moolenaar
709664cca0
patch 8.2.2131: Vim9: crash when lambda uses same var as assignment
...
Problem: Vim9: crash when lambda uses same var as assignment.
Solution: Do not let lookup_local change lv_from_outer, make a copy.
(closes #7461 )
2020-12-12 14:33:41 +01:00
Bram Moolenaar
5402175815
patch 8.2.2102: Vim9: not all error messages tested
...
Problem: Vim9: not all error messages tested.
Solution: Add a few test cases.
2020-12-06 18:50:36 +01:00
Bram Moolenaar
56602ba153
patch 8.2.2097: Vim9: using :silent! when calling a function prevents abort
...
Problem: Vim9: using :silent! when calling a function prevents abortng that
function.
Solution: Add emsg_silent_def and did_emsg_def.
2020-12-05 21:22:08 +01:00
Bram Moolenaar
f665e97ffa
patch 8.2.2096: Vim9: command modifiers not restored after assignment
...
Problem: Vim9: command modifiers not restored after assignment.
Solution: Jump to nextline instead of using continue.
2020-12-05 19:17:16 +01:00
Bram Moolenaar
4029cabbe7
patch 8.2.2095: Vim9: crash when failed dict member is followed by concat
...
Problem: Vim9: crash when failed dict member is followed by concatenation.
Solution: Remove the dict from the stack. (closes #7416 )
2020-12-05 18:13:27 +01:00
Bram Moolenaar
2d870f8d9e
patch 8.2.2092: Vim9: unpredictable errors for script tests
...
Problem: Vim9: unpredictable errors for script tests.
Solution: Use a different script file name for each run.
2020-12-05 13:41:01 +01:00
Bram Moolenaar
af0df47a76
patch 8.2.2083: Vim9: crash when using ":silent!" and getting member fails
...
Problem: Vim9: crash when using ":silent!" and getting member fails.
Solution: Jump to on_fatal_error. (closes #7412 )
2020-12-02 20:51:22 +01:00
Bram Moolenaar
e0de171ecd
patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
...
Problem: Vim9: can still use the depricated #{} dict syntax.
Solution: Remove support for #{} in Vim9 script. (closes #7406 , closes #7405 )
2020-12-02 17:36:54 +01:00
Bram Moolenaar
34c54eb6cb
patch 8.2.2051: Vim9: crash when aborting a user function call
...
Problem: Vim9: crash when aborting a user function call.
Solution: Do not use the return value when aboring. (closes #7372 )
2020-11-25 19:15:19 +01:00
Bram Moolenaar
6abdcf8285
patch 8.2.2033: Vim9: :def without argument gives compilation error
...
Problem: Vim9: :def without argument gives compilation error.
Solution: Add the DEF instruction. (closes #7344 )
2020-11-22 18:15:44 +01:00
Bram Moolenaar
18dc355395
patch 8.2.2031: some tests fail when run under valgrind
...
Problem: Some tests fail when run under valgrind.
Solution: Avoid timing problems.
2020-11-22 14:24:00 +01:00
Bram Moolenaar
eeece9e488
patch 8.2.2021: Vim9: get E1099 when autocommand resets did_emsg
...
Problem: Vim9: get E1099 when autocommand resets did_emsg.
Solution: Add did_emsg_cumul. (closes #7336 )
2020-11-20 19:26:48 +01:00
Bram Moolenaar
2ea95b61f4
patch 8.2.2018: Vim9: script variable not found from lambda
...
Problem: Vim9: script variable not found from lambda.
Solution: In a lambda also check the script hashtab for a variable without a
scope. (closes #7329 )
2020-11-19 21:47:56 +01:00
Bram Moolenaar
2bede173a1
patch 8.2.2015: Vim9: literal dict #{} is not like any other language
...
Problem: Vim9: literal dict #{} is not like any other language.
Solution: Support the JavaScript syntax.
2020-11-19 18:53:18 +01:00
Bram Moolenaar
52bf81c2d5
patch 8.2.2002: Vim9: lambda argument shadowed by function name
...
Problem: Vim9: lambda argument shadowed by function name.
Solution: Let function name be shadowed by lambda argument. (closes #7313 )
2020-11-17 18:50:44 +01:00
Bram Moolenaar
0ba48e8c27
patch 8.2.2001: Vim9: :def function does not apply 'maxfuncdepth'
...
Problem: Vim9: :def function does not apply 'maxfuncdepth'.
Solution: Use 'maxfuncdepth'. (issue #7313 )
2020-11-17 18:23:19 +01:00
Bram Moolenaar
b4d16cb11d
patch 8.2.1956: Vim9: cannot specify argument types for lambda
...
Problem: Vim9: cannot specify argument types for lambda.
Solution: Allow adding argument types. Check arguments when calling a
function reference.
2020-11-05 18:45:46 +01:00
Bram Moolenaar
cd030c4b60
patch 8.2.1928: Vim9: "silent!" not effective when list index is wrong
...
Problem: Vim9: "silent!" not effective when list index is wrong.
Solution: Ignore list indes failure when emsg_silent is set. (closes #7232 )
2020-10-30 21:49:40 +01:00
Bram Moolenaar
28ee892ac4
patch 8.2.1919: assert_fails() setting emsg_silent changes normal execution
...
Problem: Assert_fails() setting emsg_silent changes normal execution.
Solution: Use a separate flag in_assert_fails.
2020-10-28 20:20:00 +01:00
Bram Moolenaar
171fb923b8
patch 8.2.1916: Vim9: function call is aborted even when "silent!" is used
...
Problem: Vim9: function call is aborted even when "silent!" is used.
Solution: Use did_emsg instead of called_emsg. (closes #7213 )
2020-10-28 16:54:47 +01:00
Bram Moolenaar
6cf7e3b026
patch 8.2.1915: Vim9: error for wrong number of arguments is not useful
...
Problem: Vim9: error for wrong number of arguments is not useful.
Solution: Mention whatever we have for the name. (closes #7208 )
2020-10-28 14:31:16 +01:00
Bram Moolenaar
94738d8fab
patch 8.2.1876: Vim9: argument types are not checked at compile time
...
Problem: Vim9: argument types for builtin functions are not checked at
compile time.
Solution: Add an argument type checking mechanism. Implement type checks for
one function.
2020-10-21 14:25:07 +02:00
Bram Moolenaar
80b0e5ea11
patch 8.2.1867: Vim9: argument to add() not checked for blob
...
Problem: Vim9: argument to add() not checked for blob.
Solution: Add the BLOBAPPEND instruction.
2020-10-19 20:45:36 +02:00
Bram Moolenaar
66fa5fd54f
patch 8.2.1866: Vim9: appending to pushed blob gives wrong result
...
Problem: Vim9: appending to pushed blob gives wrong result.
Solution: Set ga_maxlen when copying a blob.
2020-10-19 20:21:03 +02:00
Bram Moolenaar
1dcae59957
patch 8.2.1865: Vim9: add() does not check type of argument
...
Problem: Vim9: add() does not check type of argument.
Solution: Inline the add() call. (closes #7160 )
2020-10-19 19:02:42 +02:00
Bram Moolenaar
403dc31f5a
patch 8.2.1858: Vim9: filter functions return number instead of bool
...
Problem: Vim9: filter functions return number instead of bool.
Solution: Return v:true instead of one. (closes #7144 )
2020-10-17 19:29:51 +02:00
Bram Moolenaar
2b9b17ea5d
patch 8.2.1841: Vim9: test for compilation error fails in normal build
...
Problem: Vim9: test for compilation error fails in normal build.
Solution: Invoke CheckRunVimInTerminal in a separate function.
2020-10-13 18:38:11 +02:00
Bram Moolenaar
f4e8cdd3d2
patch 8.2.1840: Vim9: error message is not clear about compilation error
...
Problem: Vim9: error message is not clear about compilation error.
Solution: Say "compiling" instead of "processing".
2020-10-12 22:07:13 +02:00
Bram Moolenaar
85d5e2b723
patch 8.2.1819: Vim9: Memory leak when using a closure
...
Problem: Vim9: Memory leak when using a closure.
Solution: Compute the mininal refcount in the funcstack. Reenable disabled
tests.
2020-10-10 14:13:01 +02:00
Bram Moolenaar
e8211a33dc
patch 8.2.1817: Vim9: wrong instruction when reusing a local variable spot
...
Problem: Vim9: wrong instruction when reusing a local variable spot.
Solution: Clear a newly allocated local variable. (closes #7080 )
2020-10-09 22:04:29 +02:00
Bram Moolenaar
11416321ff
patch 8.2.1816: Vim9: another memory leak when using function reference
...
Problem: Vim9: another memory leak when using function reference.
Solution: Temporarily disable the tests.
2020-10-09 10:20:53 +02:00
Bram Moolenaar
0876c78527
patch 8.2.1812: Vim9: nested closure throws an internal error
...
Problem: Vim9: nested closure throws an internal error.
Solution: Do not skip a local variable with a partial. (closes #7065 )
2020-10-07 19:08:04 +02:00
Bram Moolenaar
6abd3dc257
patch 8.2.1797: Vim9: some parts of the code not tested
...
Problem: Vim9: some parts of the code not tested.
Solution: Add a few tests.
2020-10-04 14:17:32 +02:00
Bram Moolenaar
7b5d544269
patch 8.2.1796: Vim9: invalid memory access with weird function name
...
Problem: Vim9: invalid memory access with weird function name. (Dhiraj
Mishra)
Solution: Check the name is valid. Add a test.
2020-10-04 13:42:34 +02:00
Bram Moolenaar
74273e6691
patch 8.2.1782: Vim9: cannot pass boolean to mapset()
...
Problem: Vim9: cannot pass boolean to mapset().
Solution: Use get_tv_bool(). (closes #7041 )
2020-10-01 21:37:21 +02:00
Bram Moolenaar
5366e1aecf
patch 8.2.1778: Vim9: returning from a partial call clears outer context
...
Problem: Vim9: returning from a partial call clears outer context, causing
a crash.
Solution: Put the outer context in the stack frame. (closes #7044 )
2020-10-01 13:01:34 +02:00
Bram Moolenaar
727345ebea
patch 8.2.1767: Vim9: test fails with python support
...
Problem: Vim9: test fails with python support.
Solution: Use "let" in legacy function.
2020-09-27 23:33:59 +02:00
Bram Moolenaar
7a9cbca00a
patch 8.2.1766: Vim9: Some tests are still using :let
...
Problem: Vim9: Some tests are still using :let.
Solution: Change the last few declarations to use :var.
2020-09-27 22:47:05 +02:00
Bram Moolenaar
c70bdab0b8
patch 8.2.1749: Vim9: crash when closure fails in nested function
...
Problem: Vim9: crash when closure fails in nested function.
Solution: Handle function returns before dereferencing remaining closures.
(closes #7008 )
2020-09-26 19:59:38 +02:00
Bram Moolenaar
148ce7ae62
patch 8.2.1734: Vim9: cannot use a funcref for a closure twice
...
Problem: Vim9: cannot use a funcref for a closure twice.
Solution: Instead of putting the funcref on the stack use a growarray on the
execution context.
2020-09-23 21:57:23 +02:00
Bram Moolenaar
280227270c
patch 8.2.1723: Vim9: Variable argument name cannot start with underscore
...
Problem: Vim9: Variable argument name cannot start with underscore.
Solution: Use eval_isnamec1(). (closes #6988 )
2020-09-21 22:02:49 +02:00
Bram Moolenaar
b816dae16d
patch 8.2.1718: Vim9: :def function disallows "firstline" for no good reason
...
Problem: Vim9: :def function disallows "firstline" and "lastline" argument
names for no good reason.
Solution: Don't check the arguments for a :def function. (closes #6986 )
2020-09-20 22:04:00 +02:00
Bram Moolenaar
b185a40745
patch 8.2.1708: Vim9: error message for function has unpritable characters
...
Problem: Vim9: error message for function has unpritable characters.
Solution: use printable_func_name(). (closes #6965 )
2020-09-18 22:42:00 +02:00
Bram Moolenaar
7cbfaa51de
patch 8.2.1706: Vim9: crash after running into the "Multiple closures" error
...
Problem: Vim9: crash after running into the "Multiple closures" error.
Solution: When a function fails still update any closures. (closes #6973 )
2020-09-18 21:25:32 +02:00
Bram Moolenaar
08e51f446b
patch 8.2.1701: Vim9: sort("i") does not work
...
Problem: Vim9: sort("i") does not work.
Solution: Don't try getting a number for a string argument. (closes #6958 )
2020-09-16 23:23:36 +02:00
Bram Moolenaar
7707228aac
patch 8.2.1697: inconsistent capitalization of error messages
...
Problem: Inconsistent capitalization of error messages.
Solution: Always start with a capital.
2020-09-16 17:55:40 +02:00
Bram Moolenaar
2f8cbc4b22
patch 8.2.1695: Vim9: crash when using varargs type "any"
...
Problem: Vim9: crash when using varargs type "any".
Solution: Check if uf_va_type is &t_any. (closes #6957 )
2020-09-16 17:22:59 +02:00
Bram Moolenaar
5e65423077
patch 8.2.1691: Vim9: list<any> is not accepted where list<number> is expected
...
Problem: Vim9: list<any> is not accepted where list<number> is expected.
Solution: Add functions to allocate and free a type_T, use it in
ISN_CHECKTYPE. (closes #6959 )
2020-09-16 15:22:00 +02:00