Mercurial > vim
comparison src/testdir/test_vim9_expr.vim @ 23368:a7cbdb9294c4 v8.2.2227
patch 8.2.2227: Vim9: recognizing lambda is too complicated
Commit: https://github.com/vim/vim/commit/e462f52db3cab656485a71e4322b6cb18d564a06
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 27 14:43:30 2020 +0100
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 27 Dec 2020 14:45:03 +0100 |
parents | 37118deff718 |
children | 9bd3873b13e2 |
comparison
equal
deleted
inserted
replaced
23367:91b6cc84c6b7 | 23368:a7cbdb9294c4 |
---|---|
1861 var res = map([1, 2, 3], {i: number, v: number -> i + v}) | 1861 var res = map([1, 2, 3], {i: number, v: number -> i + v}) |
1862 assert_equal([1, 3, 5], res) | 1862 assert_equal([1, 3, 5], res) |
1863 END | 1863 END |
1864 CheckDefAndScriptSuccess(lines) | 1864 CheckDefAndScriptSuccess(lines) |
1865 | 1865 |
1866 CheckDefFailure(["var Ref = {a->a + 1}"], 'E720:') | 1866 CheckDefFailure(["var Ref = {a->a + 1}"], 'E1004:') |
1867 CheckDefFailure(["var Ref = {a-> a + 1}"], 'E720:') | 1867 CheckDefFailure(["var Ref = {a-> a + 1}"], 'E1004:') |
1868 CheckDefFailure(["var Ref = {a ->a + 1}"], 'E720:') | 1868 CheckDefFailure(["var Ref = {a ->a + 1}"], 'E1004:') |
1869 | 1869 |
1870 CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:', 1) | 1870 CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:', 1) |
1871 # error is in first line of the lambda | 1871 # error is in first line of the lambda |
1872 CheckDefFailure(["var L = {a -> a + b}"], 'E1001:', 0) | 1872 CheckDefFailure(["var L = {a -> a + b}"], 'E1001:', 0) |
1873 | 1873 |
1962 var Fy = (a) => [0, | 1962 var Fy = (a) => [0, |
1963 1] | 1963 1] |
1964 END | 1964 END |
1965 CheckDefAndScriptSuccess(lines) | 1965 CheckDefAndScriptSuccess(lines) |
1966 | 1966 |
1967 CheckDefFailure(["var Ref = (a)=>a + 1"], 'E1001:') | 1967 CheckDefAndScriptFailure(["var Ref = (a)=>a + 1"], 'E1004:') |
1968 CheckDefFailure(["var Ref = (a)=> a + 1"], 'E1001:') | 1968 CheckDefAndScriptFailure(["var Ref = (a)=> a + 1"], 'E1004:') |
1969 CheckDefFailure(["var Ref = (a) =>a + 1"], 'E1001:') | 1969 CheckDefAndScriptFailure(["var Ref = (a) =>a + 1"], 'E1004:') |
1970 | |
1971 CheckScriptFailure(["vim9script", "var Ref = (a)=>a + 1"], 'E1004:') | |
1972 CheckScriptFailure(["vim9script", "var Ref = (a)=> a + 1"], 'E1004:') | |
1973 CheckScriptFailure(["vim9script", "var Ref = (a) =>a + 1"], 'E1004:') | |
1974 | 1970 |
1975 CheckDefFailure(["var Ref: func(number): number = (a: number): string => 'x'"], 'E1012:') | 1971 CheckDefFailure(["var Ref: func(number): number = (a: number): string => 'x'"], 'E1012:') |
1976 CheckDefFailure(["var Ref: func(number): string = (a: number): string => 99"], 'E1012:') | 1972 CheckDefFailure(["var Ref: func(number): string = (a: number): string => 99"], 'E1012:') |
1977 | 1973 |
1978 CheckDefFailure(["filter([1, 2], (k,v) => 1)"], 'E1069:', 1) | 1974 CheckDefFailure(["filter([1, 2], (k,v) => 1)"], 'E1069:', 1) |
2680 call CheckDefFailure(["var x = ''", "var y = x.memb"], 'E715:', 2) | 2676 call CheckDefFailure(["var x = ''", "var y = x.memb"], 'E715:', 2) |
2681 | 2677 |
2682 call CheckDefFailure(["'yes'->", "Echo()"], 'E488: Trailing characters: ->', 1) | 2678 call CheckDefFailure(["'yes'->", "Echo()"], 'E488: Trailing characters: ->', 1) |
2683 | 2679 |
2684 call CheckDefExecFailure(["[1, 2->len()"], 'E697:', 2) | 2680 call CheckDefExecFailure(["[1, 2->len()"], 'E697:', 2) |
2685 call CheckDefExecFailure(["{a: 1->len()"], 'E723:', 2) | 2681 call CheckDefExecFailure(["{a: 1->len()"], 'E1004:', 1) |
2686 call CheckDefExecFailure(["{['a']: 1->len()"], 'E723:', 2) | 2682 call CheckDefExecFailure(["{['a']: 1->len()"], 'E723:', 2) |
2687 endfunc | 2683 endfunc |
2688 | 2684 |
2689 let g:Funcrefs = [function('add')] | 2685 let g:Funcrefs = [function('add')] |
2690 | 2686 |