Bram Moolenaar
12bce95887
patch 8.2.2590: Vim9: default argument value may cause internal error
...
Problem: Vim9: default argument value may cause internal error.
Solution: Hide later function arguments when compiling the expression.
(closes #7948 )
2021-03-11 20:04:04 +01:00
Bram Moolenaar
c23555de34
patch 8.2.2585: Vim9: illegal memory access
...
Problem: Vim9: illegal memory access.
Solution: Check byte right after "null", not one more.
2021-03-10 19:04:07 +01:00
Bram Moolenaar
d345fb9216
patch 8.2.2584: Vim9: type error for assigning "any" to a list
...
Problem: Vim9: type error for assigning the result of list concatenation to
a list.
Solution: Do not consider concatenation result in a constant. (closes #7942 )
2021-03-10 18:43:09 +01:00
Bram Moolenaar
6914e87d3c
patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
...
Problem: Vim9: a function name with "->" in the next line doesn't work.
Solution: Recognize a function name by itself. (closes #7770 )
2021-03-06 21:01:09 +01:00
Bram Moolenaar
18062fcad6
patch 8.2.2572: Vim9: crash when getting the types for a legacy function
...
Problem: Vim9: crash when getting the types for a legacy function.
Solution: Initialize the type list growarray. (closes #7929 )
2021-03-05 21:35:47 +01:00
Bram Moolenaar
057e84afe5
patch 8.2.2558: no error if a lambda argument shadows a variable
...
Problem: No error if a lambda argument shadows a variable.
Solution: Check that the argument name shadows a local, argument or script
variable. (closes #7898 )
2021-02-28 16:55:11 +01:00
Bram Moolenaar
b4893b8450
patch 8.2.2540: Vim9: no error for using script var name for argument
...
Problem: Vim9: no error for using script var name for argument.
Solution: Check for this error. (closes #7868 )
2021-02-21 22:20:24 +01:00
Bram Moolenaar
7e82c5f338
patch 8.2.2539: Vim9: return from finally block causes a hang
...
Problem: Vim9: return from finally block causes a hang.
Solution: Store both the finally and endtry indexes. (closes #7885 )
2021-02-21 21:32:45 +01:00
Bram Moolenaar
5b5ae29bd3
patch 8.2.2533: Vim9: cannot use a range with :unlet
...
Problem: Vim9: cannot use a range with :unlet.
Solution: Implement ISN_UNLETRANGE.
2021-02-20 17:04:02 +01:00
Bram Moolenaar
ada1d870b4
patch 8.2.2532: Vim9: confusing error if :k is used with a range
...
Problem: Vim9: confusing error if :k is used with a range.
Solution: Give an error about the range. (issue #7874 )
2021-02-20 08:16:51 +01:00
Bram Moolenaar
10b9421f3b
patch 8.2.2531: Vim9: the :k command is obscure
...
Problem: Vim9: the :k command is obscure.
Solution: Disallow using :k, can use :mark instead. (closes #7874 )
2021-02-19 21:42:57 +01:00
Bram Moolenaar
e0890d678d
patch 8.2.2525: Vim9: only local variables checked for a name
...
Problem: Vim9: only local variables checked for a name.
Solution: Also check arguments and script variables. (closes #7838 )
2021-02-17 14:52:14 +01:00
Bram Moolenaar
4afa77419f
patch 8.2.2516: test failure on s390
...
Problem: Test failure on s390. (analyses by James McCoy)
Solution: Only set the try_finally label when not skipping.
2021-02-14 16:34:59 +01:00
Bram Moolenaar
c150c09ec4
patch 8.2.2506: Vim9: :continue does not work correctly in a :try block
...
Problem: Vim9: :continue does not work correctly in a :try block
Solution: Add the TRYCLEANUP instruction. (closes #7827 )
2021-02-13 15:02:46 +01:00
Bram Moolenaar
44ec21c467
patch 8.2.2504: Vim9: crash when using an argument from a closure
...
Problem: Vim9: crash when using an argument from a closure.
Solution: Check if gen_load_outer is NULL. (closes #7821 )
2021-02-12 21:50:57 +01:00
Bram Moolenaar
f785aa1354
patch 8.2.2501: not always clear where an error is reported
...
Problem: Not always clear where an error is reported.
Solution: Add the where_T structure and pass it around. (closes #7796 )
2021-02-11 21:19:34 +01:00
Bram Moolenaar
ba98fb54ae
patch 8.2.2486: Vim9: some errors for white space do not show context
...
Problem: Vim9: some errors for white space do not show context.
Solution: Include the text at the error.
2021-02-07 18:06:29 +01:00
Bram Moolenaar
6628b7ebff
patch 8.2.2483: Vim9: type error for misformed expression
...
Problem: Vim9: type error for misformed expression.
Solution: Check for end of command before checking type. (closes #7795 )
2021-02-07 16:33:35 +01:00
Bram Moolenaar
c3fc75db02
patch 8.2.2480: Vim9: some errors for white space do not show context
...
Problem: Vim9: some errors for white space do not show context.
Solution: Include the text at the error.
2021-02-07 15:28:09 +01:00
Bram Moolenaar
fc1dafa91c
patch 8.2.2460: Coverity warns for unused value
...
Problem: Coverity warns for unused value.
Solution: Do not reset the return value to OK.
2021-02-03 19:57:00 +01:00
Bram Moolenaar
2e5910bfbb
patch 8.2.2455: Vim9: key type for literal dict and indexing is inconsistent
...
Problem: Vim9: key type that can be used for literal dict and indexing is
inconsistent.
Solution: Allow using number and bool as key for a literal dict. (#7771 )
2021-02-03 17:41:24 +01:00
Bram Moolenaar
3b69006973
patch 8.2.2449: Vim9: flatten() always changes the list type
...
Problem: Vim9: flatten() always changes the list type.
Solution: Disallow using flatten() and add flattennew().
2021-02-01 20:14:51 +01:00
Bram Moolenaar
e507ff15d5
patch 8.2.2444: Vim9: compile error with combination of operator and list
...
Problem: Vim9: compile error with combination of operator and list.
Solution: Generate constants before parsing a list or dict. (closes #7757 )
2021-01-31 21:47:42 +01:00
Bram Moolenaar
e5ea346a07
patch 8.2.2409: Vim9: profiling only works for one function
...
Problem: Vim9: profiling only works for one function.
Solution: Select the right instructions when calling and returning.
(closes #7743 )
2021-01-25 21:01:48 +01:00
Bram Moolenaar
c05fe07529
patch 8.2.2406: Vim9: profiled :def function leaks memory
...
Problem: Vim9: profiled :def function leaks memory.
Solution: Delete the profiled instructions.
2021-01-24 21:30:48 +01:00
Bram Moolenaar
107e9cecf7
patch 8.2.2404: Vim9: profiling try/catch not correct
...
Problem: Vim9: profiling try/catch not correct.
Solution: Add profile instructions. Fix that "entry" did not rethrow an
excpetion.
2021-01-24 20:52:00 +01:00
Bram Moolenaar
ced68a0070
patch 8.2.2403: Vim9: profiling if/elseif/endif not correct
...
Problem: Vim9: profiling if/elseif/endif not correct.
Solution: Add profile instructions. Fix that "elseif" was wrong.
2021-01-24 17:53:47 +01:00
Bram Moolenaar
f002a41d12
patch 8.2.2401: build fails without +profiling feature
...
Problem: Build fails without +profiling feature.
Solution: Add #ifdefs.
2021-01-24 13:34:18 +01:00
Bram Moolenaar
b204990346
patch 8.2.2400: Vim9: compiled functions are not profiled
...
Problem: Vim9: compiled functions are not profiled.
Solution: Add initial changes to profile compiled functions. Fix that a
script-local function was hard to debug.
2021-01-24 12:53:53 +01:00
Bram Moolenaar
b3005ce191
patch 8.2.2390: Vim9: using positive offset is unexpected
...
Problem: Vim9: using positive offset is unexpected.
Solution: Use int8_T instead of char. (James McCoy)
2021-01-22 17:51:06 +01:00
Bram Moolenaar
9b6344613e
patch 8.2.2389: test failure on a few systems
...
Problem: Test failure on a few systems.
Solution: Avoid that "char" value is negative.
2021-01-21 22:53:38 +01:00
Bram Moolenaar
e32e516dfa
patch 8.2.2387: runtime type check does not mention argument index
...
Problem: Runtime type check does not mention argument index.
Solution: Add ct_arg_idx. (closes #7720 )
2021-01-21 20:21:29 +01:00
Bram Moolenaar
c5f59fab23
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
...
Problem: Vim9: divide by zero does not abort expression execution.
Solution: Use a "failed" flag. (issue #7704 )
2021-01-21 12:34:14 +01:00
Bram Moolenaar
e64f83cc6a
patch 8.2.2376: Vim9: crash when dividing by zero in compiled code
...
Problem: Vim9: crash when dividing by zero in compiled code using
constants.
Solution: Call num_divide() and num_modulus(). (closes #7704 )
2021-01-19 22:16:41 +01:00
Bram Moolenaar
f30a14db3b
patch 8.2.2373: Vim9: list assignment only accepts a number index
...
Problem: Vim9: list assignment only accepts a number index.
Solution: Accept "any" and do a runtime type check. (closes #7694 )
2021-01-17 21:51:24 +01:00
Bram Moolenaar
036d07144e
patch 8.2.2371: Vim9: crash when using types in :for with unpack
...
Problem: Vim9: crash when using types in :for with unpack.
Solution: Check for skip_var_list() failing. Pass include_type to
skip_var_one(). Skip type when compiling. (closes #7694 )
2021-01-17 20:23:38 +01:00
Bram Moolenaar
351ead09dd
patch 8.2.2362: Vim9: check of builtin function argument type is incomplete
...
Problem: Vim9: check of builtin function argument type is incomplete.
Solution: Use need_type() instead of check_arg_type().
2021-01-16 16:07:01 +01:00
Bram Moolenaar
2415669348
patch 8.2.2349: Vim9: cannot handle line break after parenthesis at line end
...
Problem: Vim9: cannot handle line break after parenthesis at line end.
Solution: Skip over line break. (closes #7677 )
2021-01-14 20:35:49 +01:00
Bram Moolenaar
7cd24227c0
patch 8.2.2335: Vim9: "silent return" does not restore command modifiers
...
Problem: Vim9: "silent return" does not restore command modifiers.
Solution: Resture command modifiers before returning. (closes #7649 )
2021-01-12 18:58:39 +01:00
Bram Moolenaar
082517570d
patch 8.2.2331: Vim9: wrong error when modifying dict declared with :final
...
Problem: Vim9: wrong error when modifying dict declared with :final.
Solution: Do not check for writable variable when an index follows.
(closes #7657 )
2021-01-11 21:20:18 +01:00
Bram Moolenaar
9e1d9e3473
patch 8.2.2330: Vim9: crash when using :trow in a not executed block
...
Problem: Vim9: crash when using :trow in a not executed block.
Solution: Don't generate the instruction when skipping. (closes #7659 )
2021-01-11 20:17:34 +01:00
Bram Moolenaar
75ab91ff34
patch 8.2.2325: Vim9: crash if map() changes the item type
...
Problem: Vim9: crash if map() changes the item type.
Solution: Check that the item type is still OK. (closes #7652 )
Fix problem with mapnew() on range list.
2021-01-10 22:42:50 +01:00
Bram Moolenaar
31a11b942a
patch 8.2.2323: Vim9: error when inferring type from empty dict/list
...
Problem: Vim9: error when inferring type from empty dict/list.
Solution: When the member is t_unknown use t_any. (closes #7009 )
2021-01-10 19:23:27 +01:00
Bram Moolenaar
ab360526ef
patch 8.2.2321: Vim9: cannot nest closures
...
Problem: Vim9: cannot nest closures.
Solution: Add the nesting level to ISN_LOADOUTER and ISN_STOREOUTER.
(closes #7150 , closes #7635 )
2021-01-10 14:02:28 +01:00
Bram Moolenaar
657137ca48
patch 8.2.2319: "exptype_T" can be read as "expected type"
...
Problem: "exptype_T" can be read as "expected type".
Solution: Rename to "exprtype_T", expression type.
2021-01-09 15:45:23 +01:00
Bram Moolenaar
299f3036ec
patch 8.2.2314: Vim9: returning zero takes two instructions
...
Problem: Vim9: returning zero takes two instructions.
Solution: Add ISN_RETURN_ZERO.
2021-01-08 20:53:09 +01:00
Bram Moolenaar
17126b1396
patch 8.2.2311: Vim9: cannot assign to variable that shadows command modifier
...
Problem: Vim9: cannot assign to a variable that shadows a command modifier.
Solution: Check for assignment after possible command modifier.
(closes #7632 )
2021-01-07 22:03:02 +01:00
Bram Moolenaar
328eac2b5d
patch 8.2.2308: Vim9: no error when assigning lambda to funcref
...
Problem: Vim9: no error when assigning lambda to funcref without return
value.
Solution: Default return value to "any". (closes #7629 )
2021-01-07 19:23:08 +01:00
Bram Moolenaar
32b3f82010
patch 8.2.2306: Vim9: when using function reference type is not checked
...
Problem: Vim9: when using function reference type is not checked.
Solution: When using a function reference lookup the type and check the
argument types. (issue #7629 )
2021-01-06 21:59:39 +01:00
Bram Moolenaar
b23279d7a2
patch 8.2.2305: Vim9: "++var" and "--var" are silently accepted
...
Problem: Vim9: "++var" and "--var" are silently accepted.
Solution: Give an error message.
2021-01-05 22:08:20 +01:00