Bram Moolenaar
22ebd172e4
patch 8.2.4662: no error for using out of range list index
...
Problem: No error for using out of range list index.
Solution: Check list index at script level like in compiled function.
(closes #10051 )
2022-04-01 15:26:58 +01:00
Bram Moolenaar
f3980dc5d0
patch 8.2.4632: using freed memory in flatten()
...
Problem: Using freed memory in flatten().
Solution: Clear typval after recursing into list.
2022-03-26 16:42:23 +00:00
Bram Moolenaar
c6c1ec4da5
patch 8.2.4629: flattennew() makes a deep copy unnecessarily
...
Problem: flattennew() makes a deep copy unnecessarily.
Solution: Use a shallow copy. (issue #10012 )
2022-03-26 10:50:11 +00:00
Bram Moolenaar
acf7d73a7f
patch 8.2.4627: flatten() does not use maxdepth correctly
...
Problem: flatten() does not use maxdepth correctly.
Solution: Use a recursive implementation. (closes #10020 )
2022-03-25 19:50:57 +00:00
Bram Moolenaar
2007dd49f5
patch 8.2.4455: accepting one and zero for second sort() argument is strange
...
Problem: Accepting one and zero for the second sort() argument is strange.
Solution: Disallow using one and zero in Vim9 script.
2022-02-23 13:17:47 +00:00
Bram Moolenaar
46950b225f
patch 8.2.4295: Vim9: concatenating two lists may result in wrong type
...
Problem: Vim9: concatenating two lists may result in wrong type.
Solution: Remove the type instead of using list<any>. (closes #9692 )
2022-02-04 11:36:51 +00:00
Bram Moolenaar
7676c15879
patch 8.2.4293: Vim9: when copying a list it gets type list<any>
...
Problem: Vim9: when copying a list it gets type list<any> even when the
original list did not have a type.
Solution: Only set the type when the original list has a type. (closes #9692 )
2022-02-03 21:47:34 +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
=?UTF-8?q?Dundar=20G=C3=B6c?=
d5cec1f1f0
patch 8.2.4255: theoretical computation overflow
...
Problem: Theoretical computation overflow.
Solution: Perform multiplication in a wider type. (closes #9657 )
2022-01-29 15:19:23 +00:00
Bram Moolenaar
98cd30383a
patch 8.2.4232: some compilers don't like a goto label without statement
...
Problem: Some compilers don't like a goto label without statement.
Solution: Return instead of using a goto.
2022-01-27 17:37:41 +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
04935fb17e
patch 8.2.4043: using int for second argument of ga_init2()
...
Problem: Using int for second argument of ga_init2().
Solution: Remove unnessary type cast (int) when using sizeof().
2022-01-08 16:19:22 +00:00
Bram Moolenaar
d82a47dd04
patch 8.2.4012: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move the last error messages to errors.h.
2022-01-05 20:24:39 +00:00
Bram Moolenaar
a6f7929e62
patch 8.2.4005: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move more error messages to errors.h.
2022-01-04 21:30:47 +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
Bram Moolenaar
3a846e6bca
patch 8.2.3972: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move the last errors from globals.h to errors.h.
2022-01-01 16:21:00 +00:00
Bram Moolenaar
460ae5dfca
patch 8.2.3967: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
2022-01-01 14:19:49 +00:00
Bram Moolenaar
436b5adc97
patch 8.2.3961: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
2021-12-31 22:49:24 +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
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
Yegappan Lakshmanan
f973eeb491
patch 8.2.3871: list.c contains code for dict and blob
...
Problem: List.c contains code for dict and blob.
Solution: Refactor to put code where it belongs. (Yegappan Lakshmanan,
closes #9386 )
2021-12-22 18:19:26 +00:00
Yegappan Lakshmanan
d92813a598
patch 8.2.3867: implementation of some list functions too complicated
...
Problem: Implementation of some list functions too complicated.
Solution: Refactor do_sort_uniq(), f_count() and extend() (Yegappan
Lakshmanan, closes #9378 )
2021-12-21 13:19:42 +00:00
Yegappan Lakshmanan
389b72196e
patch 8.2.3849: functions implementing reduce and map are too long
...
Problem: Functions implementing reduce and map are too long.
Solution: Use a function for each type of value. Add a few more test cases
and add to the help. (Yegappan Lakshmanan, closes #9370 )
2021-12-19 10:35:15 +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
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
rbtnn
c479ce032f
patch 8.2.3818: cannot filter or map characters in a string
...
Problem: Cannot filter or map characters in a string.
Solution: Make filter() and map() work on a string. (Naruhiko Nishino,
closes #9327 )
2021-12-15 19:14:54 +00:00
Bram Moolenaar
851f86b951
patch 8.2.3796: the funcexe_T struct members are not named consistently
...
Problem: The funcexe_T struct members are not named consistently.
Solution: Prefix "fe_" to all the members.
2021-12-13 14:26:44 +00:00
Bram Moolenaar
40bcec1bac
patch 8.2.3750: error messages are everywhere
...
Problem: Error messages are everywhere.
Solution: Move more error messages to errors.h and adjust the names.
2021-12-05 22:19:27 +00:00
Yasuhiro Matsumoto
c04f62346b
patch 8.2.3449: sort fails if the sort compare function returns 999
...
Problem: Sort fails if the sort compare function returns 999.
Solution: Adjust value to -1 / 0 / 1. (Yasuhiro Matsumoto, closes #8884 )
2021-09-19 17:01:39 +02:00
Bram Moolenaar
b3bf33a7b2
patch 8.2.3427: double free when list is copied
...
Problem: Double free when list is copied.
Solution: Allocate the type when making a copy. (closes #8862 )
Clear the type for flattennew(). Avoid a memory leak when
flattennew() fails.
2021-09-11 20:20:38 +02:00
Bram Moolenaar
efc084e335
patch 8.2.3422: Vim9: no failure if return type differs from returned var
...
Problem: Vim9: no failure if return type differs from returned variable.
Solution: Copy type when copying a list. (closes #8847 )
2021-09-09 22:30:52 +02:00
Bram Moolenaar
89071cb6a1
patch 8.2.3338: Vim9: no type check when assigning a list range
...
Problem: Vim9: no type check when assigning a list range. (Naohiro Ono)
Solution: Check the member type. (closes #8750 )
2021-08-13 18:20:09 +02:00
Bram Moolenaar
92f05f21af
patch 8.2.3336: behavior of negative index in list change changed
...
Problem: Behavior of negative index in list change changed. (Naruhiko
Nishino)
Solution: Only change it for Vim9 script. (closes #8749 )
2021-08-12 21:12:56 +02:00
Bram Moolenaar
ef98257593
patch 8.2.3335: Vim9: not enough tests run with Vim9
...
Problem: Vim9: not enough tests run with Vim9.
Solution: Run a few more tests in Vim9 script and :def function. Fix that
items(), keys() and values9) return zero for a NULL dict.
Make join() return an empty string for a NULL list. Make sort()
return an empty list for a NULL list.
2021-08-12 19:27:57 +02:00
Bram Moolenaar
4f0884d6e2
patch 8.2.3332: Vim9: cannot assign to range in list
...
Problem: Vim9: cannot assign to range in list.
Solution: Implement overwriting a list range.
2021-08-11 21:49:23 +02:00
Yegappan Lakshmanan
8ee52affe7
patch 8.2.3320: some local functions are not static
...
Problem: Some local functions are not static.
Solution: Add "static". Move snprintf() related code to strings.c.
(Yegappan Lakshmanan, closes #8734 )
2021-08-09 19:59:06 +02:00
Sean Dewar
80d7395dcf
patch 8.2.3284: no error for insert() or remove() changing a locked blob
...
Problem: No error for insert() or remove() changing a locked blob.
Solution: Check a blob is not locked before changing it. (Sean Dewar,
closes #8696 )
2021-08-04 19:25:54 +02:00
Yegappan Lakshmanan
4490ec4e83
patch 8.2.3229: Vim9: runtime and compile time type checks are not the same
...
Problem: Vim9: runtime and compile time type checks are not the same.
Solution: Add more runtime type checks for builtin functions. (Yegappan
Lakshmanan, closes #8646 )
2021-07-27 22:00:44 +02:00
Yegappan Lakshmanan
0ad871dc4d
patch 8.2.3206: Vim9: argument types are not checked at compile time
...
Problem: Vim9: argument types are not checked at compile time.
Solution: Add several more type checks. (Yegappan Lakshmanan, closes #8611 )
2021-07-23 20:37:56 +02:00
Bram Moolenaar
7a3fe3e180
patch 8.2.3200: Vim9: hard to guess where a type error is given
...
Problem: Vim9: hard to guess where a type error is given.
Solution: Add the function name where possible. (closes #8608 )
2021-07-22 14:58:47 +02:00
Bram Moolenaar
e29a27f6f8
patch 8.2.3190: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move error messages to errors.h and give them a clear name.
2021-07-20 21:07:36 +02:00
Yegappan Lakshmanan
83494b4ac6
patch 8.2.3188: Vim9: argument types are not checked at compile time
...
Problem: Vim9: argument types are not checked at compile time.
Solution: Add several more type checks, also at runtime. (Yegappan
Lakshmanan, closes #8587 )
2021-07-20 17:51:51 +02:00
Bram Moolenaar
885971e2f5
patch 8.2.3182: Vim9: crash when using removing items from a constant list
...
Problem: Vim9: crash when using removing items from a constant list.
(Yegappan Lakshmanan)
Solution: When a list was allocated with items copy them.
2021-07-18 22:25:29 +02:00
Bram Moolenaar
90fba5627b
patch 8.2.3133: Vim9: memory leak when add() fails
...
Problem: Vim9: memory leak when add() fails.
Solution: Allocate listitem_T after type check.
2021-07-09 19:17:55 +02:00
Bram Moolenaar
f32f099761
patch 8.2.3127: Vim9: no error when adding number to list of string
...
Problem: Vim9: no error when adding number to list of string.
Solution: Check the value type. (closes #8529 )
2021-07-08 20:53:40 +02:00
Bram Moolenaar
108010aa47
patch 8.2.3069: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move some error messages to errors.h. Use clearer names.
2021-06-27 22:03:33 +02:00
Bram Moolenaar
39211cba72
patch 8.2.2782: Vim9: blob operations not fully tested
...
Problem: Vim9: blob operations not fully tested.
Solution: Make more blob tests run in Vim9 script. Fix filter(). Make
insert() give an error for a null blob, like add().
2021-04-18 15:48:04 +02:00