| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Problem: still a Build failure.
Solution: Add another missing changes. Avoid compiler warning.
|
|
|
|
|
| |
Problem: A closure in a nested loop in a :def function does not work.
Solution: Use an array of loopvars, one per loop level.
|
|
|
|
|
| |
Problem: In :def function list created after const is locked.
Solution: Reset v_lock. (closes #11154)
|
|
|
|
|
| |
Problem: Closure doesn't work properly in nested loop.
Solution: Save variables up to the outer loop.
|
|
|
|
|
| |
Problem: No good reason to build without the float feature.
Solution: Remove configure check for float and "#ifdef FEAT_FLOAT".
|
|
|
|
|
|
| |
Problem: Using freed memory with combination of closures.
Solution: Do not use a partial after it has been freed through the
funcstack.
|
|
|
|
|
| |
Problem: In a :def function all closures in a loop get the same variables.
Solution: Make a copy of loop variables used in a closure.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Problem: Crash when using mkdir() with "R" flag in compiled function.
Solution: Reserve a variable for deferred function calls. Handle more than
one argument.
|
|
|
|
|
| |
Problem: Crash when using for loop variable in closure.
Solution: Check that the variable wasn't deleted. (issue #11094)
|
|
|
|
|
| |
Problem: Arguments in a partial not used by a :def function.
Solution: Put the partial arguments on the stack.
|
|
|
|
|
| |
Problem: Using :defer in expression funcref not tested.
Solution: Add a test. Fix uncovered problems.
|
|
|
|
|
| |
Problem: Members of funccall_T are inconsistently named.
Solution: Use the "fc_" prefix for all members.
|
|
|
|
|
|
| |
Problem: :defer not tested with exceptions and ":qa!".
Solution: Test :defer works when exceptions are thrown and when ":qa!" is
used. Invoke the deferred calls on exit.
|
|
|
|
|
| |
Problem: Freeing the wrong string on failure.
Solution: Adjust the argument. Reorder the code.
|
|
|
|
|
|
| |
Problem: Cleaning up after writefile() is a hassle.
Solution: Add the 'D' flag to defer deleting the written file. Very useful
in tests.
|
|
|
|
|
|
| |
Problem: Coverity warns for NULL check and unused return value.
Solution: Remove the NULL check, it was already checked earlier. Add (void)
to ignore the return value.
|
|
|
|
|
| |
Problem: Cleaning up afterwards can make a function messy.
Solution: Add the :defer command.
|
|
|
|
|
| |
Problem: :echowindow does not work in a compiled function.
Solution: Handle the expression at compile time.
|
|
|
|
|
| |
Problem: Wrong line number reported when :cexpr fails in :def function.
Solution: Set line_number before executing :cexpr. (closes #10735)
|
|
|
|
|
|
| |
Problem: Plural messages not translated properly.
Solution: Use ngettext() in a few more places. (Matvey Tarasov,
closes #10606)
|
|
|
|
|
| |
Problem: Asan warns for undefined behavior.
Solution: Cast the shifted value to unsigned.
|
|
|
|
|
| |
Problem: Right shift on negative number does not work as documented.
Solution: Use a uvarnumber_T type cast.
|
|
|
|
|
| |
Problem: Cannot do bitwise shifts.
Solution: Add the >> and << operators. (Yegappan Lakshmanan, closes #8457)
|
|
|
|
|
|
| |
Problem: Still a compiler warning for possibly uninitialized variable.
(Tony Mechelynck)
Solution: Initialize variables.
|
|
|
|
|
|
| |
Problem: Compiler warning for possibly uninitialized variable. (Tony
Mechelynck)
Solution: Initialize variable in the caller instead of in the function.
|
|
|
|
|
| |
Problem: Cannot specify a function name for :defcompile.
Solution: Implement a function name argument for :defcompile.
|
|
|
|
|
| |
Problem: Coverity complains about not restoring a saved value.
Solution: Restore value before handling error.
|
|
|
|
|
| |
Problem: Vim9: type error for list unpack mentions argument.
Solution: Mention variable. (close #10435)
|
|
|
|
|
| |
Problem: Various white space and cosmetic mistakes.
Solution: Change spaces to tabs, improve comments.
|
|
|
|
|
| |
Problem: Vim9: expression in :substitute is not compiled.
Solution: Use an INSTR instruction if possible. (closes #10334)
|
|
|
|
|
| |
Problem: Vim9: some lines not covered by tests.
Solution: Remove dead code. Add disassemble tests.
|
|
|
|
|
| |
Problem: Vim9: some lines not covered by tests.
Solution: Add a few more tests. Fix disassemble output.
|
|
|
|
|
| |
Problem: Vim9: some lines not covered by tests.
Solution: Add a few more tests. Remove dead code.
|
|
|
|
|
|
| |
Problem: Concatenating more than 2 strings in a :def function is
inefficient.
Solution: Add a count to the CONCAT instruction. (closes #10276)
|
|
|
|
|
|
| |
Problem: Still using cached values after unsetting some known environment
variables.
Solution: Take care of the side effects. (closes #10194)
|
|
|
|
|
| |
Problem: Cannot use an imported function in a mapping.
Solution: Recognize <SID>name.Func.
|
|
|
|
|
|
| |
Problem: Vim9: script variable has no flag that it was set.
Solution: Add a flag that it was set, to avoid giving it a value when used.
(closes #10088)
|
|
|
|
|
|
| |
Problem: Vim9: crash when adding a duplicate key to a dictionary.
Solution: Clear the stack item when it has been moved into the dictionary.
(closes #10087)
|
|
|
|
|
| |
Problem: Build failure without +postscript.
Solution: Use another error message.
|
|
|
|
|
| |
Problem: Vim9: not all code is tested.
Solution: Add a few more tests.
|
|
|
|
|
|
| |
Problem: No error for using out of range list index.
Solution: Check list index at script level like in compiled function.
(closes #10051)
|
|
|
|
|
| |
Problem: Errors for functions are sometimes hard to read.
Solution: Use printable_func_name() in more places.
|
|
|
|
|
| |
Problem: Leaking memory if assignment fails.
Solution: Clear assigned value on failure.
|
|
|
|
|
| |
Problem: "import autoload" only works with using 'runtimepath'.
Solution: Also support a relative and absolute file name.
|
|
|
|
|
| |
Problem: Vim9: variable may be locked unintentionally.
Solution: Clear "v_lock". (closes #10036)
|
|
|
|
|
|
| |
Problem: Vim9: in :def function script var cannot be null.
Solution: Only initialize a script variable when not set to a null value.
(closes #10034)
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Problem: Vim9: not enough test coverage for executing :def function.
Solution: Add a few more tests. Fix uncovered problem. Remove dead code.
|