Merge pull request #27987 from lupoDharkael/classname-duplicate

Prevent using multiple class_name in a class
This commit is contained in:
Rémi Verschelde 2019-05-28 11:56:21 +02:00 committed by GitHub
commit 633af46a66
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View file

@ -3369,7 +3369,7 @@ void GDScriptParser::_parse_extends(ClassNode *p_class) {
return;
}
if (!p_class->constant_expressions.empty() || !p_class->subclasses.empty() || !p_class->functions.empty() || !p_class->variables.empty()) {
if (!p_class->constant_expressions.empty() || !p_class->subclasses.empty() || !p_class->functions.empty() || !p_class->variables.empty() || p_class->classname_used) {
_set_error("'extends' must be used before anything else.");
return;
@ -3506,6 +3506,12 @@ void GDScriptParser::_parse_class(ClassNode *p_class) {
_set_error("'class_name' syntax: 'class_name <UniqueName>'");
return;
}
if (p_class->classname_used) {
_set_error("'class_name' already used for this class.");
return;
}
p_class->classname_used = true;
p_class->name = tokenizer->get_token_identifier(1);