From 24912d2010892d4d9fe71141b3130e8a8c9724ac Mon Sep 17 00:00:00 2001 From: HolonProduction Date: Tue, 31 Oct 2023 19:34:30 +0100 Subject: [PATCH] Autocompletion: Try to guess method return type even if subscript base has no value --- modules/gdscript/gdscript_editor.cpp | 2 +- .../common/infer_return_type_without_value.cfg | 5 +++++ .../completion/common/infer_return_type_without_value.gd | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 modules/gdscript/tests/scripts/completion/common/infer_return_type_without_value.cfg create mode 100644 modules/gdscript/tests/scripts/completion/common/infer_return_type_without_value.gd diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index 8f83c262fbae..4b4eb1af148d 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -1925,7 +1925,7 @@ static bool _guess_expression_type(GDScriptParser::CompletionContext &p_context, } } - if (!found && base.value.get_type() != Variant::NIL) { + if (!found) { found = _guess_method_return_type_from_base(c, base, call->function_name, r_type); } } diff --git a/modules/gdscript/tests/scripts/completion/common/infer_return_type_without_value.cfg b/modules/gdscript/tests/scripts/completion/common/infer_return_type_without_value.cfg new file mode 100644 index 000000000000..e8f996aa037c --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/common/infer_return_type_without_value.cfg @@ -0,0 +1,5 @@ +[output] +include=[ + ; String + {"display": "begins_with(…)"}, +] diff --git a/modules/gdscript/tests/scripts/completion/common/infer_return_type_without_value.gd b/modules/gdscript/tests/scripts/completion/common/infer_return_type_without_value.gd new file mode 100644 index 000000000000..e271b37eebce --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/common/infer_return_type_without_value.gd @@ -0,0 +1,9 @@ +class B: + func to_str(b: int): + return str(b) + +var a: B + +func _ready(): + a.to_str(10).➡ + pass