| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Problem: Cannot compare a typed variable with v:none.
Solution: Allow for "x is v:none" and "x isnot v:none". (issue #12194)
|
|
|
|
|
|
| |
Problem: FOR_ALL_ macros are defined in an unexpected file.
Solution: Move FOR_ALL_ macros to macros.h. Add FOR_ALL_HASHTAB_ITEMS.
(Yegappan Lakshmanan, closes #12109)
|
|
|
|
|
| |
Problem: Crash when using a NULL object. (Ernie Rael)
Solution: Check for NULL and give an error message. (closes #12083)
|
|
|
|
|
| |
Problem: Compilation error with some compilers.
Solution: Avoid using "class" as member name.
|
|
|
|
|
| |
Problem: Using null_object results in an internal error. (Ernie Rael)
Solution: Add instructions for pushing an object and class. (closes #12044)
|
|
|
|
|
|
| |
Problem: Crash when indexing "any" which is an object.
Solution: Check the index is a number. Do not check the member type of an
object. (closes #12019)
|
|
|
|
|
|
| |
Problem: Checking the type of a null object causes a crash.
Solution: Don't try to get the class of a null object. (closes #12005)
Handle error from calling a user function better.
|
|
|
|
|
|
|
| |
Problem: Calling an object method with arguments does not work. (Ernie
Rael)
Solution: Take the argument count into account when looking up the object.
(closes #11911)
|
|
|
|
|
|
| |
Problem: :defer may call the wrong method for an object. (Ernie Rael)
Solution: When en object is from a class that extends or implements, figure
out the method to call at runtime. (closes #11910)
|
|
|
|
|
| |
Problem: Calling a method on an interface does not work.
Solution: At runtime figure out what method to call. (closes #11901)
|
|
|
|
|
|
| |
Problem: Cannot use an object method with :defer. (Ernie Rael)
Solution: Find the object method and generate code to call it.
(closes #11886)
|
|
|
|
|
|
| |
Problem: Code is indented more than necessary.
Solution: Use an early return where it makes sense. (Yegappan Lakshmanan,
closes #11887)
|
|
|
|
|
| |
Problem: Cannot call a :def function with a number for a float argument.
Solution: Accept a number as well, convert it to a float.
|
|
|
|
|
| |
Problem: Storing value in interface member does not always work.
Solution: Convert the index on the interface to the index on the object.
|
|
|
|
|
|
| |
Problem: Getting interface member does not always work.
Solution: Convert the index on the interface to the index on the object.
(closes #11825)
|
|
|
|
|
| |
Problem: :interface is not implemented yet.
Solution: Implement the basics of :interface.
|
|
|
|
|
| |
Problem: Cannot call an object method in a compiled function.
Solution: Compile the instructins to invoke an object method.
|
|
|
|
|
| |
Problem: Missing function argument.
Solution: Add ignore case flag.
|
|
|
|
|
| |
Problem: Comparing objects uses identity instead of equality.
Solution: Compare the object values.
|
|
|
|
|
| |
Problem: Error message names do not match the items.
Solution: Add "_str" when the text contains "%s".
|
|
|
|
|
| |
Problem: Type of arguments not checked when calling a partial.
Solution: Give an error for a wrong argument type. (closes #11753)
|
|
|
|
|
| |
Problem: Type error when using "any" type and adding a number to a float.
Solution: Accept both a number and a float. (closes #11753)
|
|
|
|
|
| |
Problem: Using freed memory of object member. (Yegappan Lakshmanan)
Solution: Make a copy of the object member when getting it.
|
|
|
|
|
| |
Problem: Class members are not supported yet.
Solution: Add initial support for class members.
|
|
|
|
|
| |
Problem: Default constructor arguments are not optional.
Solution: Use "= v:none" to make constructor arguments optional.
|
|
|
|
|
|
| |
Problem: In a class object members cannot be initialized.
Solution: Support initializing object members. Make "dissassemble" work on
an object method.
|
|
|
|
|
|
| |
Problem: Cannot define a method in a class.
Solution: Implement defining an object method. Make calling an object
method work.
|
|
|
|
|
|
| |
Problem: Object members are not being marked as used, garbage collection
may free them.
Solution: Mark object members as used. Fix reference counting.
|
|
|
|
|
| |
Problem: Vim9 class is not implemented yet.
Solution: Add very basic class support.
|
|
|
|
|
|
| |
Problem: Crash when unletting a variable while listing variables.
Solution: Disallow changing a hashtable while going over the entries.
(closes #11435)
|
|
|
|
|
| |
Problem: Various typos.
Solution: Correct typos. (closes #11432)
|
|
|
|
|
|
| |
Problem: Cannot specify a time for :echowindow.
Solution: A count can be used to specify the display time. Add
popup_findecho().
|
|
|
|
|
| |
Problem: Calling a function from an "expr" option has too much overhead.
Solution: Add call_simple_func() and use it for 'foldexpr'
|
|
|
|
|
| |
Problem: Calling function for reduce() has too much overhead.
Solution: Only call clear_tv() when needed.
|
|
|
|
|
| |
Problem: Duplicated code in calling a :def function.
Solution: Simplify the code.
|
|
|
|
|
| |
Problem: Looping over empty out_loop[] entries.
Solution: Store the array size.
|
|
|
|
|
| |
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.
|