diff options
author | Danil Alexeev <danil@alexeev.xyz> | 2023-05-17 10:25:03 +0300 |
---|---|---|
committer | Danil Alexeev <danil@alexeev.xyz> | 2023-05-17 10:25:03 +0300 |
commit | 3bf72be62530fa69235d549f3a402061bcd7ed38 (patch) | |
tree | 96836b2d7de78ad3a6b104abcf7d0b6a7b7f9a99 /modules/gdscript/gdscript_analyzer.cpp | |
parent | a8453cb3337c2e27c061a385f9c772cf670e38e0 (diff) | |
download | redot-engine-3bf72be62530fa69235d549f3a402061bcd7ed38.tar.gz |
GDScript: Fix calling static func from non-static is allowed
Diffstat (limited to 'modules/gdscript/gdscript_analyzer.cpp')
-rw-r--r-- | modules/gdscript/gdscript_analyzer.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp index 96bd8aafad..029676e404 100644 --- a/modules/gdscript/gdscript_analyzer.cpp +++ b/modules/gdscript/gdscript_analyzer.cpp @@ -1692,6 +1692,9 @@ void GDScriptAnalyzer::resolve_function_body(GDScriptParser::FunctionNode *p_fun GDScriptParser::FunctionNode *previous_function = parser->current_function; parser->current_function = p_function; + bool previous_static_context = static_context; + static_context = p_function->is_static; + resolve_suite(p_function->body); if (!p_function->get_datatype().is_hard_type() && p_function->body->get_datatype().is_set()) { @@ -1707,6 +1710,7 @@ void GDScriptAnalyzer::resolve_function_body(GDScriptParser::FunctionNode *p_fun parser->ignored_warnings = previously_ignored_warnings; #endif parser->current_function = previous_function; + static_context = previous_static_context; } void GDScriptAnalyzer::decide_suite_type(GDScriptParser::Node *p_suite, GDScriptParser::Node *p_statement) { |