From 4e89cb330b29a67af3954851d17e8e318e89bb2a Mon Sep 17 00:00:00 2001 From: Andy Maloney Date: Mon, 1 Mar 2021 09:39:03 -0500 Subject: [PATCH] [script editor] Fix two special cases not being checked in code completion When this code was changed for 4.0, a "break" statement inside a for loop in 3.x was changed to "return". This means that the two special cases (autoloads and input actions) are never checked. Removing the return lets these work properly in the editor. (Also reorder conditionals to short-circuit and avoid expensive methods.) --- modules/gdscript/gdscript_editor.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index b17971cf93e..a9975c86020 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -2261,10 +2261,9 @@ static void _find_call_arguments(GDScriptParser::CompletionContext &p_context, c } r_arghint = _make_arguments_hint(info, p_argidx); - return; } - if (ClassDB::is_parent_class(class_name, "Node") && (p_method == "get_node" || p_method == "has_node") && p_argidx == 0) { + if (p_argidx == 0 && ClassDB::is_parent_class(class_name, "Node") && (p_method == "get_node" || p_method == "has_node")) { // Get autoloads List props; ProjectSettings::get_singleton()->get_property_list(&props);