diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index e27ff05721a..c6157f31f30 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -1567,6 +1567,10 @@ GDScriptParser::AnnotationNode *GDScriptParser::parse_annotation(uint32_t p_vali } complete_extents(annotation); + while (match(GDScriptTokenizer::Token::SEMICOLON)) { + // Semicolons after annotation are optional. + } + match(GDScriptTokenizer::Token::NEWLINE); // Newline after annotation is optional. if (valid) { diff --git a/modules/gdscript/tests/scripts/parser/features/single_line_class_statements.gd b/modules/gdscript/tests/scripts/parser/features/single_line_class_statements.gd new file mode 100644 index 00000000000..808fa96794d --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/single_line_class_statements.gd @@ -0,0 +1 @@ +pass;var x;@export;@warning_ignore("unused_private_class_variable");;;var _y : float;pass diff --git a/modules/gdscript/tests/scripts/parser/features/single_line_class_statements.out b/modules/gdscript/tests/scripts/parser/features/single_line_class_statements.out new file mode 100644 index 00000000000..d73c5eb7cde --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/single_line_class_statements.out @@ -0,0 +1 @@ +GDTEST_OK