]> granicus.if.org Git - vim/commitdiff
patch 9.0.0992: Vim9 script: get E1096 when comment follows return v9.0.0992
authormityu <mityu.mail@gmail.com>
Fri, 2 Dec 2022 18:12:05 +0000 (18:12 +0000)
committerBram Moolenaar <Bram@vim.org>
Fri, 2 Dec 2022 18:12:05 +0000 (18:12 +0000)
Problem:    Vim9 script: get E1096 when comment follows return.
Solution:   Adjust condition for return without expression. (closes #11654)

src/testdir/test_vim9_func.vim
src/version.c
src/vim9cmds.c

index bb5635626484e3f2d732718f0c9fa0d704a9daf2..a5e3e902548f56142b19e5721209918155ff3424 100644 (file)
@@ -467,6 +467,17 @@ def Test_return_bool()
   v9.CheckScriptSuccess(lines)
 enddef
 
+def Test_return_void_comment_follows()
+  var lines =<< trim END
+    vim9script
+    def ReturnCommentFollows(): void
+      return # Some comment
+    enddef
+    defcompile
+  END
+  v9.CheckScriptSuccess(lines)
+enddef
+
 let s:nothing = 0
 def ReturnNothing()
   s:nothing = 1
index 07a6093640dbb08c027c133e89a3ba3397d3f9df..e78066e92ece2c71f90d2f1178902526c736433e 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    992,
 /**/
     991,
 /**/
index 06964d52f9bde5733fd86fbfcf8eb112b2342822..ecf31dca5bc9c24f251dff5f34f54708f628bba4 100644 (file)
@@ -2531,7 +2531,8 @@ compile_return(char_u *arg, int check_return_type, int legacy, cctx_T *cctx)
     char_u     *p = arg;
     type_T     *stack_type;
 
-    if (*p != NUL && *p != '|' && *p != '\n')
+    if (*p != NUL && *p != '|' && *p != '\n'
+                                       && (legacy || !vim9_comment_start(p)))
     {
        // For a lambda, "return expr" is always used, also when "expr" results
        // in a void.