Age | Commit message (Collapse) | Author |
|
Problem: Inconsistent naming of get_list_tv() and eval_dict().
Solution: Rename get_list_tv() to eval_list(). Similarly for eval_number(),
eval_string(), eval_lit_string() and a few others.
|
|
Problem: Vim9: line continuation does not work in function arguments.
Solution: Pass "evalarg" to get_func_tv(). Fix seeing double quoted string
as comment.
|
|
Problem: Coverity reports an unnecessary NULL check.
Solution: Remove the check for NULL.
|
|
Problem: Vim9: cannot use line break in :execute, :echomsg and :echoerr
argument.
Solution: Check for line break.
|
|
Problem: Vim9: cannot use line break in :cexpr argument.
Solution: Check for line break.
|
|
Problem: Vim9: cannot use line break in :throw argument.
Solution: Check for line break.
|
|
Problem: May use NULL pointer when skipping over name.
Solution: Always set ll_name_end.
|
|
Problem: Vim9: no line break allowed in a for loop.
Solution: Skip line breaks in for command.
|
|
Problem: Vim9: no line break allowed in a while loop.
Solution: Update stored loop lines when finding line breaks.
|
|
Problem: Vim9: no line break allowed in :if expression.
Solution: Skip linebreak.
|
|
Problem: Vim9: no line break allowed in :echo expression.
Solution: Skip linebreak.
|
|
Problem: Vim9: no line break allowed after some operators.
Solution: Skip a line break after the operator. Add
eval_may_get_next_line() to simplify checking for a line break.
|
|
Problem: Vim9: no line break allowed in () expression.
Solution: Skip a line break.
|
|
Problem: Vim9: no line break allowed inside a lambda.
Solution: Handle line break inside a lambda in Vim9 script.
|
|
Problem: Vim9: no line break allowed inside a dict.
Solution: Handle line break inside a dict in Vim9 script.
|
|
Problem: Expression "!expr->func()" does not work.
Solution: Apply plus and minus earlier. (closes #6348)
|
|
Problem: Vim9: no line break allowed inside a list.
Solution: Handle line break inside a list in Vim9 script.
|
|
Problem: Vim9: no line break allowed before comperators.
Solution: Check for comperator after line break.
|
|
Problem: Vim9: no line break allowed before || or &&.
Solution: Check for operator after line break.
|
|
Problem: Vim9: no line break allowed inside "cond ? val1 : val2".
Solution: Check for operator after line break.
|
|
Problem: Build failure with older compilers.
Solution: Move declaration to start of block.
|
|
Problem: Vim9: leaking memory when using continuation line.
Solution: Keep a pointer to the continuation line in evalarg_T. Centralize
checking for a next command.
|
|
Problem: Vim9: script cannot use line continuation like in a :def function.
Solution: Pass the getline function pointer to the eval() functions. Use it
for addition and multiplication operators.
|
|
Problem: Vim9: redefining a function uses a new index every time.
Solution: When redefining a function clear the contents and re-use the
index.
|
|
Problem: Vim9: cannot assign to [var; var].
Solution: Assign rest of items to a list.
|
|
Problem: Vim9: cannot compile "[var, var] = list".
Solution: Implement list assignment.
|
|
Problem: Many type casts are used for vim_strnsave().
Solution: Make the length argument size_t instead of int. (Ken Takata,
closes #5633) Remove some type casts.
|
|
Problem: Duplicate code for evaluating expression argument.
Solution: Merge the code and make the use more flexible.
|
|
Problem: Typval related code is spread out.
Solution: Move code to new typval.c file. (Yegappan Lakshmanan, closes #6093)
|
|
Problem: Still not enough memory allocated when converting string with
special character.
Solution: Reserve space for expanding K_SPECIAL. (closes #6130)
|
|
Problem: Vim9: using a discovery phase doesn't work well.
Solution: Remove the discovery phase, instead compile a function only when
it is used. Add :defcompile to compile def functions earlier.
|
|
Problem: Not enough memory allocated when converting string with special
character.
Solution: Reserve space for modifier code. (closes #6130)
|
|
Problem: Vim9: cannot call a compiled closure from not compiled code.
Solution: Pass funcexe to call_user_func().
|
|
Problem: Vim9: No error when variable initializer is not a constant.
Solution: Return FAIL when trying to get a variable value. Do not execute a
script when an error is deteted in the first or second phase.
|
|
Problem: Vim9: expressions are evaluated in the discovery phase.
Solution: Bail out if an expression is not a constant. Require a type for
declared constants.
|
|
Problem: Vim9: performance can be improved.
Solution: Don't call break. Inline check for list materialize. Make an
inline version of ga_grow().
|
|
Problem: Vim9: closure cannot store value in outer context.
Solution: Make storing value in outer context work. Make :disassemble
accept a function reference.
|
|
Problem: Vim9: memory leak when using lambda.
Solution: Move the funccal context to the partial. Free the function when
exiting.
|
|
Problem: Cannot change window when evaluating 'completefunc'.
Solution: Make a difference between not changing text or buffers and also
not changing window.
|
|
Problem: Crash with null partial and blob.
Solution: Check for NULL pointer. Add more tests. (Yegappan Lakshmanan,
closes #5984)
|
|
Problem: Crash when using null partial in filter().
Solution: Fix crash. Add more tests. (Yegappan Lakshmanan, closes #5976)
|
|
Problem: Vim9: wrong syntax of function in Vim9 script.
Solution: Give error for missing space. Implement :echomsg and :echoerr.
(closes #5670)
|
|
Problem: Null dict is not handled like an empty dict.
Solution: Fix the code and add tests. (Yegappan Lakshmanan, closes #5968)
|
|
Problem: Echoing a null list results in no output. (Yegappan Lakshmanan)
Solution: Return "[]" instead of NULL in echo_string_core().
|
|
Problem: Vim9: no check for space before #comment.
Solution: Add space checks.
|
|
Problem: Vim9: :unlet is not compiled.
Solution: Implement :unlet instruction and check for errors.
|
|
Problem: Vim9: # comment not sufficiently tested
Solution: Check for preceding white space.
|
|
Problem: Vim9: # comment not recognized after :vim9script.
Solution: Check script type. Make comment after ":echo" work. And in
several other places.
|
|
Problem: Clearing a struct is verbose.
Solution: Define and use CLEAR_FIELD() and CLEAR_POINTER().
|
|
Problem: Vim9: cannot separate "func" and "func(): void".
Solution: Use VAR_ANY for "any" and VAR_UNKNOWN for "no type".
|