2
0
Эх сурвалжийг харах

Merge pull request #71963 from dalexeev/clarify-script-level-annotation-error

Clarify error message about script-level annotation
Rémi Verschelde 2 жил өмнө
parent
commit
fc1610a063

+ 5 - 1
modules/gdscript/gdscript_parser.cpp

@@ -1434,7 +1434,11 @@ GDScriptParser::AnnotationNode *GDScriptParser::parse_annotation(uint32_t p_vali
 	annotation->info = &valid_annotations[annotation->name];
 
 	if (!annotation->applies_to(p_valid_targets)) {
-		push_error(vformat(R"(Annotation "%s" is not allowed in this level.)", annotation->name));
+		if (annotation->applies_to(AnnotationInfo::SCRIPT)) {
+			push_error(vformat(R"(Annotation "%s" must be at the top of the script, before "extends" and "class_name".)", annotation->name));
+		} else {
+			push_error(vformat(R"(Annotation "%s" is not allowed in this level.)", annotation->name));
+		}
 		valid = false;
 	}
 

+ 1 - 1
modules/gdscript/tests/scripts/parser/errors/class_name_after_annotation.out

@@ -1,2 +1,2 @@
 GDTEST_PARSER_ERROR
-Annotation "@icon" is not allowed in this level.
+Annotation "@icon" must be at the top of the script, before "extends" and "class_name".