changeset 31501:560ba934725f v9.0.1083

patch 9.0.1083: empty and comment lines in a class cause an error Commit: https://github.com/vim/vim/commit/418b54788106efd94bbc71a4b100afae1080cbfc Author: Bram Moolenaar <Bram@vim.org> Date: Tue Dec 20 13:38:22 2022 +0000 patch 9.0.1083: empty and comment lines in a class cause an error Problem: Empty and comment lines in a class cause an error. Solution: Skip empty and comment lines. (closes https://github.com/vim/vim/issues/11734)
author Bram Moolenaar <Bram@vim.org>
date Tue, 20 Dec 2022 14:45:05 +0100
parents c78d697d032d
children 9940db8ec7d7
files src/testdir/test_vim9_class.vim src/version.c src/vim9class.c
diffstat 3 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -131,6 +131,7 @@ def Test_class_basic()
         this.lnum: number
         this.col: number
 
+        # make a nicely formatted string
         def ToString(): string
           return $'({this.lnum}, {this.col})'
         enddef
@@ -155,6 +156,7 @@ def Test_class_member_initializer()
         this.lnum: number = 1
         this.col: number = 1
 
+        # constructor with only the line number
         def new(lnum: number)
           this.lnum = lnum
         enddef
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1083,
+/**/
     1082,
 /**/
     1081,
--- a/src/vim9class.c
+++ b/src/vim9class.c
@@ -248,6 +248,16 @@ ex_class(exarg_T *eap)
 	    break;
 	char_u *line = skipwhite(theline);
 
+	// Skip empty and comment lines.
+	if (*line == NUL)
+	    continue;
+	if (*line == '#')
+	{
+	    if (vim9_bad_comment(line))
+		break;
+	    continue;
+	}
+
 	char_u *p = line;
 	if (checkforcmd(&p, "endclass", 4))
 	{