| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Problem: Crash when getting member of obj of unknown class.
Solution: Check for NULL class and give an error message. (Ernie Rael,
closes #12096)
|
|
|
|
|
| |
Problem: Using tt_member for the class leads to mistakes.
Solution: Add a separate tt_class field.
|
|
|
|
|
| |
Problem: Build failure with +eval feature.
Solution: Add missing part for using funcerror_T.
|
|
|
|
|
|
| |
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: Cannot access a private object member in a lambda defined inside
the class.
Solution: Go up the context stack to find the class. (closes #11866)
|
|
|
|
|
|
| |
Problem: Getting interface member does not always work.
Solution: Convert the index on the interface to the index on the object.
(closes #11825)
|
|
|
|
|
| |
Problem: Expression compiled the wrong way after using an object.
Solution: Generate constants before getting the type.
|
|
|
|
|
| |
Problem: Not all errors around inheritance are tested.
Solution: Add more tests. Fix uncovered problems.
|
|
|
|
|
| |
Problem: A child class cannot override functions from a base class.
Solution: Allow overriding and implement "super".
|
|
|
|
|
|
| |
Problem: Evaluating string expression advances function line.
Solution: Disable function lines while parsing a string expression.
(Hirohito Higashi, closes #11796)
|
|
|
|
|
| |
Problem: Cannot access a class member in a compiled function.
Solution: Implement looking up a class member.
|
|
|
|
|
| |
Problem: Cannot call an object method in a compiled function.
Solution: Compile the instructins to invoke an object method.
|
|
|
|
|
| |
Problem: Cannot create a new object in a compiled function.
Solution: Compile the instructins to create a new object.
|
|
|
|
|
| |
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: No error if function argument shadows class member.
Solution: Give an error for shadowing a class member.
|
|
|
|
|
| |
Problem: Class function not implemented yet.
Solution: Implement defining and calling a class function.
|
|
|
|
|
| |
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: Float constant not recognized as float.
Solution: Check the vartype instead of comparing with t_float.
(closes #11754)
|
|
|
|
|
| |
Problem: Class members are not supported yet.
Solution: Add initial support for class members.
|
|
|
|
|
| |
problem: Private and public object members are not implemented yet.
Solution: Implement private and public object members.
|
|
|
|
|
|
| |
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: Vim9 class is not implemented yet.
Solution: Add very basic class support.
|
|
|
|
|
| |
Problem: Cannot change a slice of a const list. (Takumi KAGIYAMA)
Solution: Remove the const flag from the slice type. (closes #11490)
|
|
|
|
|
| |
Problem: Various typos.
Solution: Correct typos. (closes #11432)
|
|
|
|
|
| |
Problem: In compiled function ->() on next line not recognized.
Solution: Also check for "(". (closes #11405)
|
|
|
|
|
| |
Problem: Indexing of unknown const type fails during compilation.
Solution: Check for "any" properly. (closes #11389)
|
|
|
|
|
| |
Problem: Using freed memory when command follows lambda.
Solution: Don't free what is still in use. (closes #11201)
|
|
|
|
|
| |
Problem: still a Build failure.
Solution: Add another missing changes. Avoid compiler warning.
|
|
|
|
|
| |
Problem: No good reason to build without the float feature.
Solution: Remove configure check for float and "#ifdef FEAT_FLOAT".
|
|
|
|
|
|
| |
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: Crash when using mkdir() with "R" flag in compiled function.
Solution: Reserve a variable for deferred function calls. Handle more than
one argument.
|
|
|
|
|
|
| |
Problem: Cleaning up after writefile() is a hassle.
Solution: Add the 'D' flag to defer deleting the written file. Very useful
in tests.
|
|
|
|
|
| |
Problem: Cleaning up afterwards can make a function messy.
Solution: Add the :defer command.
|
|
|
|
|
| |
Problem: No error for comma missing in list in :def function.
Solution: Check for missing comma. (closes #10943)
|
|
|
|
|
|
|
| |
Problem: Cannot make a funcref with "s:func" in a def function in legacy
script.
Solution: Allow for using a lower case function name after "s:". (Kota Kato,
closes #10926)
|
|
|
|
|
| |
Problem: Vim9: some code is not covered by tests.
Solution: Delete dead code.
|
|
|
|
|
| |
Problem: Asan warns for undefined behavior.
Solution: Cast the shifted value to unsigned.
|
|
|
|
|
| |
Problem: Compiler warning for uninitialized variable. (John Marriott)
Solution: Initialize the pointer to NULL.
|
|
|
|
|
| |
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: Vim9: compilation fails when using dict member when skipping.
Solution: Do not generate ISN_USEDICT when skipping. (closes #10433)
|
|
|
|
|
| |
Problem: Vim9: some code not covered by tests.
Solution: Add a few more test cases. Fix double error message.
|
|
|
|
|
| |
Problem: Vim9: some code not covered by tests.
Solution: Add a few more test cases. Remove dead code.
|
|
|
|
|
| |
Problem: Some code is never used.
Solution: Remove dead code. Add a few more test cases.
|
|
|
|
|
| |
Problem: Interpolated string expression requires escaping.
Solution: Do not require escaping in the expression.
|
|
|
|
|
|
| |
Problem: String interpolation only works in heredoc.
Solution: Support interpolated strings. Use syntax for heredoc consistent
with strings, similar to C#. (closes #10327)
|