GDScript: Fix infinite recursion in resolution of enum values

This commit is contained in:
George Marques 2023-01-13 10:17:30 -03:00
parent 3c9bf4bc21
commit 3a5e41293c
No known key found for this signature in database
GPG Key ID: 046BD46A3201E43D

View File

@ -889,11 +889,11 @@ void GDScriptAnalyzer::resolve_class_member(GDScriptParser::ClassNode *p_class,
resolve_function_signature(member.function, p_source);
break;
case GDScriptParser::ClassNode::Member::ENUM_VALUE: {
member.enum_value.identifier->set_datatype(resolving_datatype);
if (member.enum_value.custom_value) {
check_class_member_name_conflict(p_class, member.enum_value.identifier->name, member.enum_value.custom_value);
member.enum_value.identifier->set_datatype(resolving_datatype);
const GDScriptParser::EnumNode *prev_enum = current_enum;
current_enum = member.enum_value.parent_enum;
reduce_expression(member.enum_value.custom_value);