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
Bram Moolenaar
ecac591cce
patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
...
Problem: Vim9: backtick expansion doesn't work for :foldopen.
Solution: Do recognize backtick expansion. (closes #7621 )
2021-01-05 19:23:28 +01:00
Bram Moolenaar
752fc692ac
patch 8.2.2301: Vim9: cannot unlet a dict or list item
...
Problem: Vim9: cannot unlet a dict or list item.
Solution: Add ISN_UNLETINDEX. Refactor assignment code to use for unlet.
2021-01-04 21:57:11 +01:00
Bram Moolenaar
d62d87d8f3
patch 8.2.2300: Vim9: wrong order on type stack when using dict
...
Problem: Vim9: wrong order on type stack when using dict.
Solution: Generate constants before a dict. (closes #7619 )
2021-01-04 17:40:12 +01:00
Bram Moolenaar
d1510ee946
patch 8.2.2299: Vim9: invalid memory access making error message flaky
...
Problem: Vim9: invalid memory access making error message flaky.
Solution: Do not check cmd_argt for CMD_USER. (issue #7467 )
2021-01-04 16:15:58 +01:00
Bram Moolenaar
d93a7fc1a9
patch 8.2.2295: incsearch does not detect empty pattern properly
...
Problem: Incsearch does not detect empty pattern properly.
Solution: Return magic state when skipping over a pattern. (Christian
Brabandt, closes #7612 , closes #6420 )
2021-01-04 12:42:13 +01:00
Bram Moolenaar
6797782127
patch 8.2.2291: Vim9: cannot use "null" for v:null
...
Problem: Vim9: cannot use "null" for v:null.
Solution: Support "null" like "true" and "false". (closes #7495 )
2021-01-03 21:53:53 +01:00
Bram Moolenaar
2ef951dd31
patch 8.2.2290: Vim9: unlet of global variable cannot be compiled
...
Problem: Vim9: unlet of global variable cannot be compiled.
Solution: Skip over variables that might be defined later. Give an error if
a subscript is found. (closes #7585 )
2021-01-03 20:55:26 +01:00
Bram Moolenaar
5afd081cd3
patch 8.2.2288: Vim9: line break and comment not always skipped
...
Problem: Vim9: line break and comment not always skipped.
Solution: Skip over white space and then line break more consistently.
(closes #7610 )
2021-01-03 18:33:13 +01:00
Bram Moolenaar
a11919fa44
patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
...
Problem: Vim9: compiled "wincmd" cannot be followed by bar.
Solution: Check for bar after "wincmd". (closes #7599 )
2021-01-02 19:44:56 +01:00
Bram Moolenaar
508b5618ec
patch 8.2.2279: Vim9: memory leak with catch in skipped block
...
Problem: Vim9: memory leak with catch in skipped block.
Solution: Free the pattern if not used.
2021-01-02 18:17:26 +01:00
Bram Moolenaar
aa210a3aec
patch 8.2.2272: Vim9: extend() can violate the type of a variable
...
Problem: Vim9: extend() can violate the type of a variable.
Solution: Add the type to the dictionary or list and check items against it.
(closes #7593 )
2021-01-02 15:41:03 +01:00
Bram Moolenaar
3862ea3f62
patch 8.2.2268: Vim9: list unpack seen as declaration
...
Problem: Vim9: list unpack seen as declaration.
Solution: Check for "var". (closes #7594 )
2021-01-01 21:05:55 +01:00
Bram Moolenaar
e7a73e0762
patch 8.2.2266: Vim9: it can be hard to see where white space is missing
...
Problem: Vim9: it can be hard to see where white space is missing.
Solution: Mention the text where the error was seen. (closes #7580 )
2021-01-01 19:17:55 +01:00
Bram Moolenaar
69f7050ceb
patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
...
Problem: Vim9: compilation error with try-catch in skipped block.
Solution: Do not bail out when generate_instr() returns NULL. (closes #7584 )
2021-01-01 16:10:46 +01:00
Bram Moolenaar
d5ea8f08f7
patch 8.2.2261: Vim9: boolean option gets string type
...
Problem: Vim9: boolean option gets string type.
Solution: Check for VAR_BOOL. (closes #7588 )
2021-01-01 14:49:15 +01:00
Bram Moolenaar
2949cfdbe4
patch 8.2.2257: Vim9: using -> for lambda is ambiguous
...
Problem: Vim9: using -> for lambda is ambiguous.
Solution: Stop supporting ->, must use =>.
2020-12-31 21:28:47 +01:00
Bram Moolenaar
dd1f426bd6
patch 8.2.2254: Vim9: bool option type is number
...
Problem: Vim9: bool option type is number.
Solution: Have get_option_value() return a different value for bool and
number options. (closes #7583 )
2020-12-31 17:41:01 +01:00
Bram Moolenaar
6b55377303
patch 8.2.2252: Vim9: crash when using lambda without return type in dict
...
Problem: Vim9: crash when using lambda without return type in dict.
Solution: Without a return type use t_unknown. (closes #7587 )
2020-12-31 13:31:23 +01:00
Bram Moolenaar
de4f95b041
patch 8.2.2250: Vim9: sublist is ambiguous
...
Problem: Vim9: sublist is ambiguous.
Solution: Require white space around the colon. (closes #7409 )
2020-12-30 20:39:21 +01:00
Bram Moolenaar
dcc58e031d
patch 8.2.2239: Vim9: concatenating lines with backslash is inconvenient
...
Problem: Vim9: concatenating lines with backslash is inconvenient.
Solution: Support concatenating lines starting with '|', useful for
:autocmd, :command, etc. (closes #6702 )
2020-12-28 20:53:21 +01:00
Bram Moolenaar
e462f52db3
patch 8.2.2227: Vim9: recognizing lambda is too complicated
...
Problem: Vim9: recognizing lambda is too complicated.
Solution: Call compile_lambda() and check for NOTDONE.
2020-12-27 14:43:30 +01:00
Bram Moolenaar
a629495530
patch 8.2.2225: Vim9: error when using :import in legacy script twice
...
Problem: Vim9: error when using :import in legacy script twice.
Solution: Make it possible to redefine an import when reloading.
2020-12-27 13:39:50 +01:00
Bram Moolenaar
07a65d26e7
patch 8.2.2224: Vim9: crash if script reloaded with different variable type
...
Problem: Vim9: crash if script reloaded with different variable type.
Solution: Check the type when accessing the variable.
2020-12-26 20:09:15 +01:00
Bram Moolenaar
cdc40c43f1
patch 8.2.2223: Vim9: Reloading marks a :def function as deleted
...
Problem: Vim9: Reloading marks a :def function as deleted.
Solution: Clear the function contents but keep the index.
2020-12-26 17:43:08 +01:00
Bram Moolenaar
7e3682068b
patch 8.2.2219: Vim9: method call with expression not supported
...
Problem: Vim9: method call with expression not supported.
Solution: Implement expr->(expr)().
2020-12-25 21:56:57 +01:00
Bram Moolenaar
6e2c2c50ba
patch 8.2.2216: Vim9: range with missing colon can be hard to spot
...
Problem: Vim9: range with missing colon can be hard to spot.
Solution: Include the start of the range in the error. (closes #7543 )
2020-12-25 19:25:45 +01:00
Bram Moolenaar
56ce9ea3ea
patch 8.2.2215: Vim9: not recognized in global command
...
Problem: Vim9: not recognized in global command.
Solution: Skip over pattern. (issue #7541 )
2020-12-25 18:35:29 +01:00
Bram Moolenaar
3868f59466
patch 8.2.2210: Vim9: allocating a type to set TTFLAG_BOOL_OK
...
Problem: Vim9: allocating a type to set TTFLAG_BOOL_OK.
Solution: Add t_number_bool.
2020-12-25 13:20:41 +01:00
Bram Moolenaar
9e68c32563
patch 8.2.2209: Vim9: return type of => lambda not parsed
...
Problem: Vim9: return type of => lambda not parsed.
Solution: Parse and use the return type.
2020-12-25 12:38:04 +01:00
Bram Moolenaar
4aab88d919
patch 8.2.2208: Vim9: after reloading a script variable index may be invalid
...
Problem: Vim9: after reloading a script variable index may be invalid.
Solution: When the sequence number doesn't match give an error for using a
script-local variable from a compiled function. (closes #7547 )
2020-12-24 21:56:41 +01:00
Bram Moolenaar
65c4415276
patch 8.2.2204: Vim9: using -> both for method and lambda is confusing
...
Problem: Vim9: using -> both for method and lambda is confusing.
Solution: Use => for lambda in :def function.
2020-12-24 15:14:01 +01:00
Bram Moolenaar
27bf7af9d0
patch 8.2.2200: Vim9: lambda without white space around -> is confusing
...
Problem: Vim9: lambda without white space around -> is confusing.
Solution: Require white space in a :def funtion. (issue #7503 )
2020-12-23 20:27:31 +01:00