# HG changeset patch # User Bram Moolenaar # Date 1626722104 -7200 # Node ID ec0421c25be9d3302d2cfdd41b5cc5564bfba543 # Parent ff61999903e4762244cd162f4a0a915fa5aecba2 patch 8.2.3185: Vim9: start of inline function found in comment line Commit: https://github.com/vim/vim/commit/ac2cd2b08f0fd15e9c3759da043e9b28da80dca8 Author: Bram Moolenaar Date: Mon Jul 19 21:04:23 2021 +0200 patch 8.2.3185: Vim9: start of inline function found in comment line Problem: Vim9: start of inline function found in comment line. Solution: Do not check for inline function in comment line. (closes https://github.com/vim/vim/issues/8589) diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim --- a/src/testdir/test_vim9_expr.vim +++ b/src/testdir/test_vim9_expr.vim @@ -2075,6 +2075,10 @@ def Test_expr7_lambda_block() }) assert_equal(['no', 'yes', 'no'], dll) + # ignored_inline(0, (_) => { + # echo 'body' + # }) + sandbox var Safe = (nr: number): number => { return nr + 7 } diff --git a/src/userfunc.c b/src/userfunc.c --- a/src/userfunc.c +++ b/src/userfunc.c @@ -866,26 +866,29 @@ get_function_body( } } - // Check for nested inline function. - end = p + STRLEN(p) - 1; - while (end > p && VIM_ISWHITE(*end)) - --end; - if (end > p && *end == '{') + if (nesting_def[nesting] ? *p != '#' : *p != '"') { - --end; + // Not a comment line: check for nested inline function. + end = p + STRLEN(p) - 1; while (end > p && VIM_ISWHITE(*end)) --end; - if (end > p + 2 && end[-1] == '=' && end[0] == '>') + if (end > p && *end == '{') { - // found trailing "=> {", start of an inline function - if (nesting == MAX_FUNC_NESTING - 1) - emsg(_(e_function_nesting_too_deep)); - else + --end; + while (end > p && VIM_ISWHITE(*end)) + --end; + if (end > p + 2 && end[-1] == '=' && end[0] == '>') { - ++nesting; - nesting_def[nesting] = TRUE; - nesting_inline[nesting] = TRUE; - indent += 2; + // found trailing "=> {", start of an inline function + if (nesting == MAX_FUNC_NESTING - 1) + emsg(_(e_function_nesting_too_deep)); + else + { + ++nesting; + nesting_def[nesting] = TRUE; + nesting_inline[nesting] = TRUE; + indent += 2; + } } } } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -756,6 +756,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3185, +/**/ 3184, /**/ 3183,