Bram Moolenaar
fa02616718
patch 8.2.4459: Vim9: compiling sort() call fails with unknown arguments
...
Problem: Vim9: compiling sort() call fails with a funcref that has unknown
arguments.
Solution: Do not check the arguments if they are unknown at compile time.
(closes #9835 )
2022-02-23 21:03:32 +00:00
Bram Moolenaar
6e1a38745f
patch 8.2.4458: Vim9: compiling filter() call fails with unknown arguments
...
Problem: Vim9: compiling filter() call fails with funcref that has unknown
arguments.
Solution: Do not check the arguments if they are unknown at compile time.
(closes #9835 )
2022-02-23 19:11:49 +00:00
Bram Moolenaar
e843efcc35
patch 8.2.4449: vim9: function argument of sort() not checked at compile time
...
Problem: vim9: function argument of sort() not checked at compile time.
Solution: Add a compile time check.
2022-02-22 21:54:44 +00:00
Bram Moolenaar
fe73255c92
patch 8.2.4446: Vim9: cannot refer to a global function like a local one
...
Problem: Vim9: cannot refer to a global function like a local one.
Solution: When g:name is not a variable but a function, use a function
reference. (closes #9826 )
2022-02-22 19:39:13 +00:00
Bram Moolenaar
16f6c8ac94
patch 8.2.4441: Vim9: function argument of filter() not checked like map()
...
Problem: Vim9: function argument of filter() not checked like map().
Solution: Also check the function argument of filter().
2022-02-22 15:12:14 +00:00
Bram Moolenaar
c1e6c7bafe
patch 8.2.4426: map() function on string and blob does not check types
...
Problem: map() function on string and blob does not check argument types at
compile time.
Solution: Check string and blob argument types. Support "0z1234->func()".
2022-02-20 18:26:46 +00:00
Bram Moolenaar
eddd4fc4f6
patch 8.2.4425: map() function does not check function arguments
...
Problem: map() function does not check function arguments at compile time.
Solution: Give an error if the arguments of a map() function are wrong.
2022-02-20 15:52:28 +00:00
Bram Moolenaar
e88c6b7a5d
patch 8.2.4390: Vim9: list from declaration with inferred type not set
...
Problem: Vim9: list from declaration with inferred type does not set the
type on the value.
Solution: When inferring the type in a variable declaration also set the
type of the list or dictionary. (closes #9705 ) Do not set the
type when the member is "any".
2022-02-15 15:37:11 +00:00
Bram Moolenaar
a749a42ed2
patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
...
Problem: Vim9: allowing use of "s:" leads to inconsistencies.
Solution: Disallow using "s:" in Vim9 script at the script level.
2022-02-12 19:52:25 +00:00
Bram Moolenaar
5f4ef5f5e5
patch 8.2.4313: Vim9: cannot change type of list after making a slice
...
Problem: Vim9: cannot change type of list after making a slice.
Solution: Adjust the declared member type. (closes #9696 )
2022-02-06 18:36:53 +00:00
Bram Moolenaar
2626d6a71c
patch 8.2.4310: Vim9: constant list and dict get a declaration type
...
Problem: Vim9: constant list and dict get a declaration type other than
"any".
Solution: A constant list and dict have a declared member type "any".
(closes #9701 )
2022-02-06 15:49:35 +00:00
Bram Moolenaar
00eb99528e
patch 8.2.4304: Vim9: slice() makes a copy but doesn't change the type
...
Problem: Vim9: slice() makes a copy but doesn't change the type.
Solution: Change the declared type like copy(). (closes #9696 )
2022-02-05 19:23:18 +00:00
Bram Moolenaar
82e46e5d31
patch 8.2.4302: Vim9: return type of getline() is too strict
...
Problem: Vim9: return type of getline() is too strict.
Solution: Make the declared type list<any>. Also do this for other
functions returning a list of a specific type.
2022-02-05 18:12:34 +00:00
Bram Moolenaar
e0c2b2ceaa
patch 8.2.4301: Vim9: type error for copy of dict
...
Problem: Vim9: type error for copy of dict.
Solution: Do not use dict<any> but no type. (closes #9696 )
2022-02-05 14:05:51 +00:00
Bram Moolenaar
381692b6f1
patch 8.2.4286: Vim9: strict type checking after copy() and deepcopy()
...
Problem: Vim9: strict type checking after copy() and deepcopy().
Solution: Allow type to change after making a copy. (closes #9644 )
2022-02-02 20:01:27 +00:00
Bram Moolenaar
8133018f50
patch 8.2.4279: Vim9: cannot change item type with map() after range()
...
Problem: Vim9: cannot change item type with map() after range().
Solution: Split the return type in current type and declared type.
(closes #9665 )
2022-02-01 12:11:58 +00:00
Yegappan Lakshmanan
9e0208f51c
patch 8.2.4276: separate test function for the GUI scrollbar
...
Problem: Separate test function for the GUI scrollbar.
Solution: Use test_gui_event(). (Yegappan Lakshmanan, closes #9674 )
2022-01-31 17:40:55 +00:00
Bram Moolenaar
848faddb87
patch 8.2.4260: Vim9: can still use a global function without g:
...
Problem: Vim9: can still use a global function without g: at the script
level.
Solution: Also check for g: at the script level. (issue #9637 )
2022-01-30 15:28:30 +00:00
Yegappan Lakshmanan
06011e1a55
patch 8.2.4259: number of test functions for GUI events is growing
...
Problem: Number of test functions for GUI events is growing.
Solution: Use one function with a dictionary. (Yegappan Lakshmanan,
closes #9660 )
2022-01-30 12:37:29 +00:00
Bram Moolenaar
62aec93bfd
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
...
Problem: Vim9: finding global function without g: prefix but not finding
global variable is inconsistent.
Solution: Require using g: for a global function. Change the vim9.vim
script into a Vim9 script with exports. Fix that import in legacy
script does not work.
2022-01-29 21:45:34 +00:00
Bram Moolenaar
35c807df1f
patch 8.2.4231: Vim9: map() gives type error when type was not declared
...
Problem: Vim9: map() gives type error when type was not declared.
Solution: Only check the type when it was declared, like extend() does.
(closes #9635 )
2022-01-27 16:36:29 +00:00
Bram Moolenaar
745b938a48
patch 8.2.4229: possible crash when invoking timer callback fails
...
Problem: Possible crash when invoking timer callback fails.
Solution: Initialize the typval. Give an error for an empty callback.
(closes #9636 )
2022-01-27 13:55:35 +00:00
Bram Moolenaar
1080c48ec8
patch 8.2.4224: Vim9: no error when using a number for map() second argument
...
Problem: Vim9: no error when using a number for map() second argument
Solution: Disallow number to string conversion. (closes #9630 )
2022-01-26 18:26:21 +00:00
Bram Moolenaar
17dd519633
patch 8.2.4141: Vim9 builtin functions test fails
...
Problem: Vim9 builtin functions test fails.
Solution: Add "scriptversion" item to maparg() result.
2022-01-18 21:42:37 +00:00
Bram Moolenaar
10d6f18b2f
patch 8.2.3997: Vim9: not enough testing for extend() and map()
...
Problem: Vim9: not enough testing for extend() and map().
Solution: Add more test cases. Fix uncovered problems. Remove unused type
fields.
2022-01-04 15:54:38 +00:00
Bram Moolenaar
078a46161e
patch 8.2.3996: Vim9: type checking lacks information about declared type
...
Problem: Vim9: type checking for list and dict lacks information about
declared type.
Solution: Add dv_decl_type and lv_decl_type. Refactor the type stack to
store two types in each entry.
2022-01-04 15:17:03 +00:00
Bram Moolenaar
ad8f248585
patch 8.2.3994: Vim9: extend() complains about type when it was not declared
...
Problem: Vim9: extend() complains about the type even when it was not
declared.
Solution: Only check the list or dict type when it was declared.
2022-01-03 16:52:28 +00:00
Bram Moolenaar
114dbda785
patch 8.2.3991: Vim9: error when extending dict<any>
...
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 )
2022-01-03 12:28:03 +00:00
Dominique Pelle
8bfa0eb863
patch 8.2.3982: some lines of code not covered by tests
...
Problem: Some lines of code not covered by tests.
Solution: Add a few more test cases. (Dominique Pellé, closes #9453 )
2022-01-02 16:16:33 +00:00
Bram Moolenaar
1f4a3457a3
patch 8.2.3974: Vim9: LISTAPPEND instruction does not check for a locked list
...
Problem: Vim9: LISTAPPEND instruction does not check for a locked list.
Solution: Check whether the list is locked. (closes #9452 )
2022-01-01 18:29:21 +00:00
Bram Moolenaar
8b6256f6ec
patch 8.2.3919: Vim9: wrong argument for append() results in two errors
...
Problem: Vim9: wrong argument for append() results in two errors.
Solution: Check did_emsg. Also for setline(). Adjust the help for
appendbufline().
2021-12-28 11:24:49 +00:00
Bram Moolenaar
8dac2acd6a
patch 8.2.3916: no error for passing an invalid line number to append()
...
Problem: No error for passing an invalid line number to append().
Solution: In Vim9 script check for a non-negative number. (closes #9417 )
2021-12-27 20:57:06 +00:00
Bram Moolenaar
ef8f04b1d1
patch 8.2.3911: Vim9: type check for filter() does not accept unknown
...
Problem: Vim9: type check for filter() does not accept unknown.
Solution: Also accept unknown for the return type. (closes #9413 )
2021-12-27 12:29:19 +00:00
Bram Moolenaar
23018f2d4b
patch 8.2.3910: when compare function of sort() fails it does not abort
...
Problem: When the compare function of sort() produces and error then sort()
does not abort.
Solution: Check if did_emsg was incremented.
2021-12-27 11:54:37 +00:00
Bram Moolenaar
7319981f21
patch 8.2.3904: Vim9: skip expression type is not checked at compile time
...
Problem: Vim9: skip expression type is not checked at compile time.
Solution: Add argument type checks.
2021-12-26 17:18:14 +00:00
Bram Moolenaar
1802405d71
patch 8.2.3897: Vim9: second argument of map() and filter() not checked
...
Problem: Vim9: the second argument of map() and filter() is not checked at
compile time.
Solution: Add more specific type check for the second argument.
2021-12-25 21:43:28 +00:00
Bram Moolenaar
ae1068afde
patch 8.2.3895: Vim9: confusing error when using function() with a number
...
Problem: Vim9: confusing error when using function() with a number.
Solution: Check for a function or string argument.
2021-12-25 19:43:44 +00:00
Bram Moolenaar
223d0a6bc8
patch 8.2.3894: Vim9: no proper type check for first argument of call()
...
Problem: Vim9: no proper type check for first argument of call().
Solution: Add specific type check.
2021-12-25 19:29:21 +00:00
Bram Moolenaar
080182216e
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
...
Problem: Vim9: finddir() and uniq() return types can be more specific.
Solution: Adjust the return type.
2021-12-22 18:45:37 +00:00
Bram Moolenaar
2f9f4ccfc8
patch 8.2.3857: Vim9: inconsistent error for using function()
...
Problem: Vim9: inconsistent error for using function().
Solution: Use a runtime type check for the result of function().
(closes #8492 )
2021-12-20 09:36:27 +00:00
Bram Moolenaar
86b3ab4fa0
patch 8.2.3854: Vim9: inconsistent arguments for test functions
...
Problem: Vim9: inconsistent arguments for test functions.
Solution: When :def function and script have different arguments use a list
with two items instead of a separate function.
2021-12-19 18:33:23 +00:00
rbtnn
0ccb5842f5
patch 8.2.3848: cannot use reduce() for a string
...
Problem: Cannot use reduce() for a string.
Solution: Make reduce() work with a string. (Naruhiko Nishino, closes #9366 )
2021-12-18 18:33:46 +00:00
Dominique Pelle
0dc4d8eaec
patch 8.2.3845: Vim9: test fails when the channel feature is missing
...
Problem: Vim9: test fails when the channel feature is missing.
Solution: Check for the channel feature. (Dominique Pellé, closes #9368 )
2021-12-18 12:40:52 +00:00
Bram Moolenaar
2d877599ee
patch 8.2.3822: leaking memory in map() and filter(), no string in Vim9
...
Problem: Leaking memory in map() and filter(), cannot use a string argument
in Vim9 script.
Solution: Fix the leak, adjust the argument check, also run the tests as
Vim9 script. (Yegappan Lakshmanan, closes #9354 )
2021-12-16 08:21:09 +00:00
Bram Moolenaar
f0e496a85a
patch 8.2.3715: Vim9: valgrind reports spurious problems for a test
...
Problem: Vim9: valgrind reports spurious problems for a test.
Solution: Move the test to the set that is known to fail.
2021-12-01 12:41:31 +00:00
Bram Moolenaar
c449271f4e
patch 8.2.3646: using <sfile> in a function gives an unexpected result
...
Problem: Using <sfile> in a function gives an unexpected result.
Solution: Give an error in a Vim9 function. (issue #9189 )
2021-11-22 15:37:15 +00:00
Yegappan Lakshmanan
2a16dc6613
patch 8.2.3605: cannot clear and unlinke a highlight group with hlset()
...
Problem: Cannot clear and unlinke a highlight group with hlset() in a
single call.
Solution: Add the "force" option. (Yegappan Lakshmanan, closes #9117 )
2021-11-16 17:19:30 +00:00
Yegappan Lakshmanan
d1a8d658e1
patch 8.2.3578: manipulating highlighting is complicated
...
Problem: Manipulating highlighting is complicated.
Solution: Add the hlget() and hlset() functions. (Yegappan Lakshmanan,
closes #9039 )
2021-11-03 21:56:45 +00:00
Yegappan Lakshmanan
51491adfa8
patch 8.2.3459: Vim9: need more tests for empty string arguments
...
Problem: Vim9: need more tests for empty string arguments.
Solution: Add more tests. Also use empty argument with menu_info() to get
the top-level menu names. (Yegappan Lakshmanan, closes #8925 )
2021-09-30 19:00:00 +01:00
Yegappan Lakshmanan
f8dbd58666
patch 8.2.3456: Vim9: not all functions are tested with empty string argument
...
Problem: Vim9: Not all functions are tested with an empty string argument.
Solution: Add tests with empty strings. (Yegappan Lakshmanan, closes #8915 )
2021-09-26 19:04:05 +01:00