diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2018-10-24 19:04:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-24 19:04:31 +0200 |
commit | b41301e6f9cd978bed17e84a0f3c6d8cfec16c83 (patch) | |
tree | 8ec3b875447aa3e806bab5e88e1f748cd6135e43 /modules | |
parent | 7664d2abeb2a4a74e7101dfc780bf922b848c89d (diff) | |
parent | 6e8f0cfdc6ed71b51a882ca910a7efea1600b3c9 (diff) |
Merge pull request #22899 from J08nY/fix/assignment-operation-array
Do not make a function that returns Variant::NIL a void function. Fix #22791
Diffstat (limited to 'modules')
-rw-r--r-- | modules/gdscript/gdscript_parser.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index 5f2655eb92..97ac6f7de6 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -6709,9 +6709,15 @@ GDScriptParser::DataType GDScriptParser::_reduce_function_call_type(const Operat } } + bool rets = false; return_type.has_type = true; return_type.kind = DataType::BUILTIN; - return_type.builtin_type = Variant::get_method_return_type(base_type.builtin_type, callee_name); + return_type.builtin_type = Variant::get_method_return_type(base_type.builtin_type, callee_name, &rets); + // If the method returns, but it might return any type, (Variant::NIL), pretend we don't know the type. + // At least make sure we know that it returns + if (rets && return_type.builtin_type == Variant::NIL) { + return_type.has_type = false; + } break; } |