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

predefined var check for `for` loop counter

(cherry picked from commit e153772de2a52795aefb2f0c11c69396d04c61d5)
Thakee Nathees 5 жил өмнө
parent
commit
837cba7567

+ 9 - 0
modules/gdscript/gdscript_parser.cpp

@@ -3121,6 +3121,15 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
 				IdentifierNode *id = alloc_node<IdentifierNode>();
 				id->name = tokenizer->get_token_identifier();
 
+				BlockNode *check_block = p_block;
+				while (check_block) {
+					if (check_block->variables.has(id->name)) {
+						_set_error("Variable \"" + String(id->name) + "\" already defined in the scope (at line " + itos(check_block->variables[id->name]->line) + ").");
+						return;
+					}
+					check_block = check_block->parent_block;
+				}
+
 				tokenizer->advance();
 
 				if (tokenizer->get_token() != GDScriptTokenizer::TK_OP_IN) {