summaryrefslogtreecommitdiff
path: root/src/vim9execute.c
Commit message (Collapse)AuthorAgeFilesLines
* patch 9.0.1436: cannot compare a typed variable with v:nonev9.0.1436Bram Moolenaar2023-04-011-1/+9
| | | | | Problem: Cannot compare a typed variable with v:none. Solution: Allow for "x is v:none" and "x isnot v:none". (issue #12194)
* patch 9.0.1390: FOR_ALL_ macros are defined in an unexpected filev9.0.1390Yegappan Lakshmanan2023-03-071-1/+1
| | | | | | 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)
* patch 9.0.1370: crash when using a NULL objectv9.0.1370Bram Moolenaar2023-03-021-0/+7
| | | | | Problem: Crash when using a NULL object. (Ernie Rael) Solution: Check for NULL and give an error message. (closes #12083)
* patch 9.0.1358: compilation error with some compilersv9.0.1358Bram Moolenaar2023-02-271-3/+3
| | | | | Problem: Compilation error with some compilers. Solution: Avoid using "class" as member name.
* patch 9.0.1357: using null_object results in an internal errorv9.0.1357Bram Moolenaar2023-02-261-2/+19
| | | | | Problem: Using null_object results in an internal error. (Ernie Rael) Solution: Add instructions for pushing an object and class. (closes #12044)
* patch 9.0.1322: crash when indexing "any" which is an objectv9.0.1322Bram Moolenaar2023-02-181-8/+43
| | | | | | 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)
* patch 9.0.1320: checking the type of a null object causes a crashv9.0.1320Bram Moolenaar2023-02-181-5/+5
| | | | | | 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.
* patch 9.0.1296: calling an object method with arguments does not workv9.0.1296Bram Moolenaar2023-02-101-2/+3
| | | | | | | 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)
* patch 9.0.1292: :defer may call the wrong method for an objectv9.0.1292Bram Moolenaar2023-02-081-2/+29
| | | | | | 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)
* patch 9.0.1254: calling a method on an interface does not workv9.0.1254Bram Moolenaar2023-01-281-12/+54
| | | | | Problem: Calling a method on an interface does not work. Solution: At runtime figure out what method to call. (closes #11901)
* patch 9.0.1250: cannot use an object method with :deferv9.0.1250Bram Moolenaar2023-01-271-12/+31
| | | | | | Problem: Cannot use an object method with :defer. (Ernie Rael) Solution: Find the object method and generate code to call it. (closes #11886)
* patch 9.0.1246: code is indented more than necessaryv9.0.1246Yegappan Lakshmanan2023-01-261-48/+48
| | | | | | Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes #11887)
* patch 9.0.1224: cannot call a :def function with a number for float argumentv9.0.1224Bram Moolenaar2023-01-201-5/+18
| | | | | Problem: Cannot call a :def function with a number for a float argument. Solution: Accept a number as well, convert it to a float.
* patch 9.0.1211: storing value in interface member does not always workv9.0.1211Bram Moolenaar2023-01-161-2/+8
| | | | | Problem: Storing value in interface member does not always work. Solution: Convert the index on the interface to the index on the object.
* patch 9.0.1209: getting interface member does not always workv9.0.1209Bram Moolenaar2023-01-161-1/+19
| | | | | | Problem: Getting interface member does not always work. Solution: Convert the index on the interface to the index on the object. (closes #11825)
* patch 9.0.1150: :interface is not implemented yetv9.0.1150Bram Moolenaar2023-01-051-1/+1
| | | | | Problem: :interface is not implemented yet. Solution: Implement the basics of :interface.
* patch 9.0.1140: cannot call an object method in a compiled functionv9.0.1140Bram Moolenaar2023-01-031-2/+16
| | | | | Problem: Cannot call an object method in a compiled function. Solution: Compile the instructins to invoke an object method.
* patch 9.0.1135: missing function argumentv9.0.1135Bram Moolenaar2023-01-021-2/+3
| | | | | Problem: Missing function argument. Solution: Add ignore case flag.
* patch 9.0.1134: comparing objects uses identity instead of equalityv9.0.1134Bram Moolenaar2023-01-021-1/+17
| | | | | Problem: Comparing objects uses identity instead of equality. Solution: Compare the object values.
* patch 9.0.1133: error message names do not match the itemsv9.0.1133Bram Moolenaar2023-01-021-7/+5
| | | | | Problem: Error message names do not match the items. Solution: Add "_str" when the text contains "%s".
* patch 9.0.1119: type of arguments not checked when calling a partialv9.0.1119Bram Moolenaar2022-12-311-20/+41
| | | | | Problem: Type of arguments not checked when calling a partial. Solution: Give an error for a wrong argument type. (closes #11753)
* patch 9.0.1108: type error when using "any" type and adding to floatv9.0.1108Bram Moolenaar2022-12-291-3/+10
| | | | | Problem: Type error when using "any" type and adding a number to a float. Solution: Accept both a number and a float. (closes #11753)
* patch 9.0.1093: using freed memory of object memberv9.0.1093Bram Moolenaar2022-12-241-2/+2
| | | | | Problem: Using freed memory of object member. (Yegappan Lakshmanan) Solution: Make a copy of the object member when getting it.
* patch 9.0.1074: class members are not supported yetv9.0.1074Bram Moolenaar2022-12-181-0/+34
| | | | | Problem: Class members are not supported yet. Solution: Add initial support for class members.
* patch 9.0.1053: default constructor arguments are not optionalv9.0.1053Bram Moolenaar2022-12-131-7/+16
| | | | | Problem: Default constructor arguments are not optional. Solution: Use "= v:none" to make constructor arguments optional.
* patch 9.0.1045: in a class object members cannot be initializedv9.0.1045Bram Moolenaar2022-12-101-3/+17
| | | | | | Problem: In a class object members cannot be initialized. Solution: Support initializing object members. Make "dissassemble" work on an object method.
* patch 9.0.1041: cannot define a method in a classv9.0.1041Bram Moolenaar2022-12-091-1/+42
| | | | | | Problem: Cannot define a method in a class. Solution: Implement defining an object method. Make calling an object method work.
* patch 9.0.1035: object members are not being marked as usedv9.0.1035Bram Moolenaar2022-12-081-0/+2
| | | | | | Problem: Object members are not being marked as used, garbage collection may free them. Solution: Mark object members as used. Fix reference counting.
* patch 9.0.1031: Vim9 class is not implemented yetv9.0.1031Bram Moolenaar2022-12-081-6/+46
| | | | | Problem: Vim9 class is not implemented yet. Solution: Add very basic class support.
* patch 9.0.0949: crash when unletting a variable while listing variablesv9.0.0949Bram Moolenaar2022-11-251-1/+1
| | | | | | Problem: Crash when unletting a variable while listing variables. Solution: Disallow changing a hashtable while going over the entries. (closes #11435)
* patch 9.0.0828: various typosv9.0.0828dundargoc2022-11-021-4/+4
| | | | | Problem: Various typos. Solution: Correct typos. (closes #11432)
* patch 9.0.0683: cannot specify a time for :echowindowv9.0.0683Bram Moolenaar2022-10-071-4/+14
| | | | | | Problem: Cannot specify a time for :echowindow. Solution: A count can be used to specify the display time. Add popup_findecho().
* patch 9.0.0632: calling a function from an "expr" option has overheadv9.0.0632Bram Moolenaar2022-10-011-2/+3
| | | | | Problem: Calling a function from an "expr" option has too much overhead. Solution: Add call_simple_func() and use it for 'foldexpr'
* patch 9.0.0617: calling function for reduce() has too much overheadv9.0.0617Bram Moolenaar2022-09-281-4/+9
| | | | | Problem: Calling function for reduce() has too much overhead. Solution: Only call clear_tv() when needed.
* patch 9.0.0549: duplicated code in calling a :def functionv9.0.0549Bram Moolenaar2022-09-221-22/+12
| | | | | Problem: Duplicated code in calling a :def function. Solution: Simplify the code.
* patch 9.0.0547: looping over empty out_loop[] entriesv9.0.0547Bram Moolenaar2022-09-221-6/+5
| | | | | Problem: Looping over empty out_loop[] entries. Solution: Store the array size.
* patch 9.0.0504: still a build failurev9.0.0504Bram Moolenaar2022-09-191-3/+3
| | | | | Problem: still a Build failure. Solution: Add another missing changes. Avoid compiler warning.
* patch 9.0.0502: a closure in a nested loop in a :def function does not workv9.0.0502Bram Moolenaar2022-09-191-68/+133
| | | | | Problem: A closure in a nested loop in a :def function does not work. Solution: Use an array of loopvars, one per loop level.
* patch 9.0.0499: in :def function list created after const is lockedv9.0.0499Bram Moolenaar2022-09-181-0/+1
| | | | | Problem: In :def function list created after const is locked. Solution: Reset v_lock. (closes #11154)
* patch 9.0.0495: closure doesn't work properly in nested loopv9.0.0495Bram Moolenaar2022-09-181-2/+2
| | | | | Problem: Closure doesn't work properly in nested loop. Solution: Save variables up to the outer loop.
* patch 9.0.0491: no good reason to build without the float featurev9.0.0491Bram Moolenaar2022-09-171-24/+0
| | | | | Problem: No good reason to build without the float feature. Solution: Remove configure check for float and "#ifdef FEAT_FLOAT".
* patch 9.0.0487: using freed memory with combination of closuresv9.0.0487Bram Moolenaar2022-09-171-16/+21
| | | | | | Problem: Using freed memory with combination of closures. Solution: Do not use a partial after it has been freed through the funcstack.
* patch 9.0.0485: in :def function all closures in loop get the same variablesv9.0.0485Bram Moolenaar2022-09-171-13/+180
| | | | | 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.
* patch 9.0.0481: in :def function all closures in loop get the same variablesv9.0.0481Bram Moolenaar2022-09-161-34/+93
| | | | | | 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.
* patch 9.0.0470: in :def function all closures in loop get the same variablesv9.0.0470Bram Moolenaar2022-09-151-16/+96
| | | | | | 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.
* patch 9.0.0440: crash when using mkdir() with "R" flag in compiled functionv9.0.0440Bram Moolenaar2022-09-111-4/+10
| | | | | | Problem: Crash when using mkdir() with "R" flag in compiled function. Solution: Reserve a variable for deferred function calls. Handle more than one argument.
* patch 9.0.0432: crash when using for loop variable in closurev9.0.0432Bram Moolenaar2022-09-091-0/+6
| | | | | Problem: Crash when using for loop variable in closure. Solution: Check that the variable wasn't deleted. (issue #11094)
* patch 9.0.0405: arguments in a partial not used by a :def functionv9.0.0405Bram Moolenaar2022-09-071-12/+21
| | | | | Problem: Arguments in a partial not used by a :def function. Solution: Put the partial arguments on the stack.
* patch 9.0.0399: using :defer in expression funcref not testedv9.0.0399Bram Moolenaar2022-09-061-1/+22
| | | | | Problem: Using :defer in expression funcref not tested. Solution: Add a test. Fix uncovered problems.
* patch 9.0.0398: members of funccall_T are inconsistently namedv9.0.0398Bram Moolenaar2022-09-061-3/+3
| | | | | Problem: Members of funccall_T are inconsistently named. Solution: Use the "fc_" prefix for all members.