summaryrefslogtreecommitdiff
path: root/src/vim9expr.c
Commit message (Collapse)AuthorAgeFilesLines
* patch 9.0.1375: crash when getting member of obj of unknown classv9.0.1375Ernie Rael2023-03-031-0/+7
| | | | | | Problem: Crash when getting member of obj of unknown class. Solution: Check for NULL class and give an error message. (Ernie Rael, closes #12096)
* patch 9.0.1334: using tt_member for the class leads to mistakesv9.0.1334Bram Moolenaar2023-02-211-1/+1
| | | | | Problem: Using tt_member for the class leads to mistakes. Solution: Add a separate tt_class field.
* patch 9.0.1323: build failure with +eval featurev9.0.1323Bram Moolenaar2023-02-181-1/+1
| | | | | Problem: Build failure with +eval feature. Solution: Add missing part for using funcerror_T.
* patch 9.0.1292: :defer may call the wrong method for an objectv9.0.1292Bram Moolenaar2023-02-081-2/+7
| | | | | | 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-6/+11
| | | | | 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-0/+11
| | | | | | 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.1240: cannot access a private object member in a lambdav9.0.1240Bram Moolenaar2023-01-241-1/+1
| | | | | | 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)
* patch 9.0.1209: getting interface member does not always workv9.0.1209Bram Moolenaar2023-01-161-0/+2
| | | | | | 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.1204: expression compiled the wrong way after using an objectv9.0.1204Bram Moolenaar2023-01-151-31/+34
| | | | | Problem: Expression compiled the wrong way after using an object. Solution: Generate constants before getting the type.
* patch 9.0.1179: not all errors around inheritance are testedv9.0.1179Bram Moolenaar2023-01-111-6/+7
| | | | | Problem: Not all errors around inheritance are tested. Solution: Add more tests. Fix uncovered problems.
* patch 9.0.1178: a child class cannot override functions from a base classv9.0.1178Bram Moolenaar2023-01-111-4/+30
| | | | | Problem: A child class cannot override functions from a base class. Solution: Allow overriding and implement "super".
* patch 9.0.1164: evaluating string expression advances function linev9.0.1164h-east2023-01-091-0/+8
| | | | | | Problem: Evaluating string expression advances function line. Solution: Disable function lines while parsing a string expression. (Hirohito Higashi, closes #11796)
* patch 9.0.1147: cannot access a class member in a compiled functionv9.0.1147Bram Moolenaar2023-01-041-18/+31
| | | | | Problem: Cannot access a class member in a compiled function. Solution: Implement looking up a class member.
* patch 9.0.1140: cannot call an object method in a compiled functionv9.0.1140Bram Moolenaar2023-01-031-23/+39
| | | | | Problem: Cannot call an object method in a compiled function. Solution: Compile the instructins to invoke an object method.
* patch 9.0.1139: cannot create a new object in a compiled functionv9.0.1139Bram Moolenaar2023-01-031-2/+41
| | | | | Problem: Cannot create a new object in a compiled function. Solution: Compile the instructins to create a new object.
* patch 9.0.1134: comparing objects uses identity instead of equalityv9.0.1134Bram Moolenaar2023-01-021-2/+3
| | | | | 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-4/+4
| | | | | Problem: Error message names do not match the items. Solution: Add "_str" when the text contains "%s".
* patch 9.0.1127: no error if function argument shadows class memberv9.0.1127Bram Moolenaar2023-01-011-1/+1
| | | | | Problem: No error if function argument shadows class member. Solution: Give an error for shadowing a class member.
* patch 9.0.1123: class function not implemented yetv9.0.1123Bram Moolenaar2023-01-011-1/+6
| | | | | Problem: Class function not implemented yet. Solution: Implement defining and calling a class function.
* patch 9.0.1108: type error when using "any" type and adding to floatv9.0.1108Bram Moolenaar2022-12-291-12/+13
| | | | | 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.1107: float constant not recognized as floatv9.0.1107Bram Moolenaar2022-12-271-12/+4
| | | | | | Problem: Float constant not recognized as float. Solution: Check the vartype instead of comparing with t_float. (closes #11754)
* patch 9.0.1074: class members are not supported yetv9.0.1074Bram Moolenaar2022-12-181-5/+4
| | | | | Problem: Class members are not supported yet. Solution: Add initial support for class members.
* patch 9.0.1060: private and public object members are not implemented yetv9.0.1060Bram Moolenaar2022-12-141-0/+7
| | | | | problem: Private and public object members are not implemented yet. Solution: Implement private and public object members.
* patch 9.0.1045: in a class object members cannot be initializedv9.0.1045Bram Moolenaar2022-12-101-2/+1
| | | | | | 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-2/+63
| | | | | | Problem: Cannot define a method in a class. Solution: Implement defining an object method. Make calling an object method work.
* patch 9.0.1031: Vim9 class is not implemented yetv9.0.1031Bram Moolenaar2022-12-081-0/+2
| | | | | Problem: Vim9 class is not implemented yet. Solution: Add very basic class support.
* patch 9.0.0840: cannot change a slice of a const listv9.0.0840Bram Moolenaar2022-11-061-0/+12
| | | | | Problem: Cannot change a slice of a const list. (Takumi KAGIYAMA) Solution: Remove the const flag from the slice type. (closes #11490)
* patch 9.0.0828: various typosv9.0.0828dundargoc2022-11-021-2/+2
| | | | | Problem: Various typos. Solution: Correct typos. (closes #11432)
* patch 9.0.0799: in compiled function ->() on next line not recognizedv9.0.0799Bram Moolenaar2022-10-191-2/+3
| | | | | Problem: In compiled function ->() on next line not recognized. Solution: Also check for "(". (closes #11405)
* patch 9.0.0778: indexing of unknown const type fails during compilationv9.0.0778Bram Moolenaar2022-10-171-8/+10
| | | | | Problem: Indexing of unknown const type fails during compilation. Solution: Check for "any" properly. (closes #11389)
* patch 9.0.0554: using freed memory when command follows lambdav9.0.0554Bram Moolenaar2022-09-231-2/+5
| | | | | Problem: Using freed memory when command follows lambda. Solution: Don't free what is still in use. (closes #11201)
* patch 9.0.0504: still a build failurev9.0.0504Bram Moolenaar2022-09-191-2/+4
| | | | | Problem: still a Build failure. Solution: Add another missing changes. Avoid compiler warning.
* patch 9.0.0491: no good reason to build without the float featurev9.0.0491Bram Moolenaar2022-09-171-2/+0
| | | | | Problem: No good reason to build without the float feature. Solution: Remove configure check for float and "#ifdef FEAT_FLOAT".
* patch 9.0.0481: in :def function all closures in loop get the same variablesv9.0.0481Bram Moolenaar2022-09-161-1/+4
| | | | | | 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.0440: crash when using mkdir() with "R" flag in compiled functionv9.0.0440Bram Moolenaar2022-09-111-3/+4
| | | | | | 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.0379: cleaning up after writefile() is a hasslev9.0.0379Bram Moolenaar2022-09-041-0/+8
| | | | | | Problem: Cleaning up after writefile() is a hassle. Solution: Add the 'D' flag to defer deleting the written file. Very useful in tests.
* patch 9.0.0370: cleaning up afterwards can make a function messyv9.0.0370Bram Moolenaar2022-09-031-14/+5
| | | | | Problem: Cleaning up afterwards can make a function messy. Solution: Add the :defer command.
* patch 9.0.0230: no error for comma missing in list in :def functionv9.0.0230Bram Moolenaar2022-08-201-0/+8
| | | | | Problem: No error for comma missing in list in :def function. Solution: Check for missing comma. (closes #10943)
* patch 9.0.0219: cannot make a funcref with "s:func" in a def functionv9.0.0219Kota Kato2022-08-161-3/+2
| | | | | | | 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)
* patch 8.2.5018: Vim9: some code is not covered by testsv8.2.5018Bram Moolenaar2022-05-251-1/+1
| | | | | Problem: Vim9: some code is not covered by tests. Solution: Delete dead code.
* patch 8.2.5006: asan warns for undefined behaviorv8.2.5006Bram Moolenaar2022-05-221-1/+2
| | | | | Problem: Asan warns for undefined behavior. Solution: Cast the shifted value to unsigned.
* patch 8.2.5005: compiler warning for uninitialized variablev8.2.5005Bram Moolenaar2022-05-221-6/+5
| | | | | Problem: Compiler warning for uninitialized variable. (John Marriott) Solution: Initialize the pointer to NULL.
* patch 8.2.5004: right shift on negative number does not work as documentedv8.2.5004Bram Moolenaar2022-05-221-5/+2
| | | | | Problem: Right shift on negative number does not work as documented. Solution: Use a uvarnumber_T type cast.
* patch 8.2.5003: cannot do bitwise shiftsv8.2.5003Yegappan Lakshmanan2022-05-221-12/+143
| | | | | Problem: Cannot do bitwise shifts. Solution: Add the >> and << operators. (Yegappan Lakshmanan, closes #8457)
* patch 8.2.4972: Vim9: compilation fails when using dict member when skippingv8.2.4972Bram Moolenaar2022-05-171-1/+2
| | | | | Problem: Vim9: compilation fails when using dict member when skipping. Solution: Do not generate ISN_USEDICT when skipping. (closes #10433)
* patch 8.2.4949: Vim9: some code not covered by testsv8.2.4949Bram Moolenaar2022-05-131-1/+3
| | | | | Problem: Vim9: some code not covered by tests. Solution: Add a few more test cases. Fix double error message.
* patch 8.2.4946: Vim9: some code not covered by testsv8.2.4946Bram Moolenaar2022-05-121-7/+1
| | | | | Problem: Vim9: some code not covered by tests. Solution: Add a few more test cases. Remove dead code.
* patch 8.2.4940: some code is never usedv8.2.4940Bram Moolenaar2022-05-121-14/+8
| | | | | Problem: Some code is never used. Solution: Remove dead code. Add a few more test cases.
* patch 8.2.4930: interpolated string expression requires escapingv8.2.4930Bram Moolenaar2022-05-101-14/+57
| | | | | Problem: Interpolated string expression requires escaping. Solution: Do not require escaping in the expression.
* patch 8.2.4883: string interpolation only works in heredocv8.2.4883LemonBoy2022-05-061-1/+32
| | | | | | Problem: String interpolation only works in heredoc. Solution: Support interpolated strings. Use syntax for heredoc consistent with strings, similar to C#. (closes #10327)