diff options
author | George Marques <george@gmarqu.es> | 2023-01-13 10:17:30 -0300 |
---|---|---|
committer | George Marques <george@gmarqu.es> | 2023-01-13 10:17:30 -0300 |
commit | 3a5e41293c5cba87da1dad3a9760dc45fab6687b (patch) | |
tree | cb4155fc53f87a763a088f9b9fee04a01681cebf /modules | |
parent | 3c9bf4bc210a8e6a208f30ca59de4d4d7e18c04d (diff) |
GDScript: Fix infinite recursion in resolution of enum values
Diffstat (limited to 'modules')
-rw-r--r-- | modules/gdscript/gdscript_analyzer.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp index 0c858a36e7..1b488d560c 100644 --- a/modules/gdscript/gdscript_analyzer.cpp +++ b/modules/gdscript/gdscript_analyzer.cpp @@ -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); |