| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Problem: Vim9: "break" inside try/catch not handled correctly.
Solution: First jump to :endtry. (closes #9927)
|
|
|
|
|
| |
Problem: Vim9: cannot set variables to a null value.
Solution: Add null_list, null_job, etc.
|
|
|
|
|
| |
Problem: Vim9: cannot compare with v:null.
Solution: Allow comparing anything with v:null. (closes #9866)
|
|
|
|
|
| |
Problem: ctx_imports is not used.
Solution: Delete ctx_imports. Add missing dependency.
|
|
|
|
|
|
| |
Problem: Vim9: cannot use a function from an autoload import directly.
Solution: Add the AUTOLOAD instruction to figure out at runtime.
(closes #9620)
|
|
|
|
|
|
| |
Problem: Vim9: no detection of return in try/endtry. (Dominique Pellé)
Solution: Check if any of the blocks inside try/endtry did not end in
return.
|
|
|
|
|
|
|
| |
Problem: Vim9: error when extending dict<any> with another type that it was
initialized with.
Solution: Also set the type for dict<any> if the initializer has a more
specific type. (closes #9461)
|
|
|
|
|
| |
Problem: Various spelling mistakes in comments.
Solution: Fix the mistakes. (Dominique Pellé, closes #9416)
|
|
|
|
|
| |
Problem: Vim9: compiler complains about using "try" as a struct member.
Solution: Rename "try" to "tryref".
|
|
|
|
|
| |
Problem: Vim9: codecov struggles with the file size.
Solution: Split vim9compile.c into four files.
|
|
|
|
|
| |
Problem: Vim9: cannot use a lambda for 'opfunc' and others.
Solution: Convert the lambda to a string.
|
|
|
|
|
| |
Problem: Vim9: range without a command is not compiled.
Solution: Add the ISN_EXECRANGE byte code.
|
|
|
|
|
| |
Problem: Vim9: cannot use :func inside a :def function.
Solution: Make it work.
|
|
|
|
|
| |
Problem: Vim9: || and && are not handled at compile time when possible.
Solution: When using constants generate fewer instructions.
|
|
|
|
|
| |
Problem: Vim9: dict is not passed to dict function.
Solution: Keep the dict used until a function call.
|
|
|
|
|
|
| |
Problem: Vim9: expression breakpoint not checked in :def function.
Solution: Always compile a function for debugging if there is an expression
breakpoint. (closes #8803)
|
|
|
|
|
| |
Problem: Vim9: cannot lock a member in a local dict.
Solution: Get the local dict from the stack and pass it to get_lval().
|
|
|
|
|
| |
Problem: Vim9: :echoconsole cannot access local variables.
Solution: Handle like other :echo commands. (closes #8708)
|
|
|
|
|
| |
Problem: Some structures could be smaller.
Solution: Rearrange members to reduce size. (Dominique Pellé, closes #8725)
|
|
|
|
|
|
| |
Problem: Vim9: debugger test fails with normal features and +terminal.
(Dominique Pellé)
Solution: Adjust the INSTRUCTIONS macro. (closes #8460)
|
|
|
|
|
|
| |
Problem: Vim9: breakpoint at a comment line does not work.
Solution: Add the comment line number to the debug instruction.
(closes #8429)
|
|
|
|
|
|
| |
Problem: Vim9: crash when using operator and list unpack assignment.
(Naohiro Ono)
Solution: Get variable value before operation. (closes #8416)
|
|
|
|
|
| |
Problem: Vim9: cannot set breakpoint in compiled function.
Solution: Check for breakpoint when calling a function.
|
|
|
|
|
| |
Problem: Vim9: using a void value does not give a proper error message.
Solution: Give a clear error message. (clodes #8387)
|
|
|
|
|
| |
Problem: Vim9: when debugging cannot inspect local variables.
Solution: Make local variables available when debugging.
|
|
|
|
|
| |
Problem: Vim9: debugger test fails.
Solution: Get the debugger instructions when needed.
|
|
|
|
|
| |
Problem: Vim9: a compiled function cannot be debugged.
Solution: Add initial debugging support.
|
|
|
|
|
|
| |
Problem: Vim9: cannot use heredoc in :def function for :python, :lua, etc.
Solution: Concatenate the heredoc lines and pass them in the ISN_EXEC_SPLIT
instruction.
|
|
|
|
|
|
| |
Problem: Vim9: converting number to bool uses wrong stack offset. (Salman
Halim)
Solution: Include the offset in the 2BOOL command.
|
|
|
|
|
| |
Problem: Vim9: "legacy return" is not recognized as a return statement.
Solution: Specifically check for a return command. (closes #8213)
|
|
|
|
|
| |
Problem: Vim9: skip argument to searchpair() is not compiled.
Solution: Add VAR_INSTR.
|
|
|
|
|
| |
Problem: Vim9: :cexpr does not work with local variables.
Solution: Compile :cexpr.
|
|
|
|
|
| |
Problem: Vim9: still crash when using substitute expression.
Solution: Put the instruction list in the stack frame. (closes #8154)
|
|
|
|
|
| |
Problem: Vim9: cannot redirect to local variable.
Solution: Compile :redir when redirecting to a variable.
|
|
|
|
|
|
| |
Problem: Vim9: cannot use \=expr in :substitute.
Solution: Compile the expression into instructions and execute them when
invoked.
|
|
|
|
|
| |
Problem: Vim9: blob tests for legacy and Vim9 script are separate.
Solution: Add CheckLegacyAndVim9Success(). Make blob index assign work.
|
|
|
|
|
| |
Problem: Vim9: blob index and slice not implemented yet.
Solution: Implement blob index and slice.
|
|
|
|
|
|
| |
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)
|
|
|
|
|
| |
Problem: Vim9: command modifiers not handled in nested function.
Solution: Keep function-local info in a structure and save it on the stack.
|
|
|
|
|
| |
Problem: Vim9: return from finally block causes a hang.
Solution: Store both the finally and endtry indexes. (closes #7885)
|
|
|
|
|
| |
Problem: Vim9: cannot use a range with :unlet.
Solution: Implement ISN_UNLETRANGE.
|
|
|
|
|
| |
Problem: Vim9: lambda return type is not determined at script level.
Solution: Compile the lambda to get the return type. (closes #7843)
|
|
|
|
|
| |
Problem: Vim9: :continue does not work correctly in a :try block
Solution: Add the TRYCLEANUP instruction. (closes #7827)
|
|
|
|
|
| |
Problem: Build failure without the +profiling feature.
Solution: Add dummy argument to macro.
|
|
|
|
|
|
| |
Problem: Vim9: profiling only works for one function.
Solution: Select the right instructions when calling and returning.
(closes #7743)
|
|
|
|
|
| |
Problem: Build fails without +profiling feature.
Solution: Add #ifdefs.
|
|
|
|
|
|
| |
Problem: Vim9: compiled functions are not profiled.
Solution: Add initial changes to profile compiled functions. Fix that a
script-local function was hard to debug.
|
|
|
|
|
| |
Problem: Vim9: using positive offset is unexpected.
Solution: Use int8_T instead of char. (James McCoy)
|
|
|
|
|
| |
Problem: Test failure on a few systems.
Solution: Avoid that "char" value is negative.
|
|
|
|
|
| |
Problem: Runtime type check does not mention argument index.
Solution: Add ct_arg_idx. (closes #7720)
|