summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2018-10-24 19:04:31 +0200
committerGitHub <noreply@github.com>2018-10-24 19:04:31 +0200
commitb41301e6f9cd978bed17e84a0f3c6d8cfec16c83 (patch)
tree8ec3b875447aa3e806bab5e88e1f748cd6135e43 /modules
parent7664d2abeb2a4a74e7101dfc780bf922b848c89d (diff)
parent6e8f0cfdc6ed71b51a882ca910a7efea1600b3c9 (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.cpp8
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;
}