Merge pull request #22899 from J08nY/fix/assignment-operation-array

Do not make a function that returns Variant::NIL a void function. Fix #22791
This commit is contained in:
Rémi Verschelde 2018-10-24 19:04:31 +02:00 committed by GitHub
commit b41301e6f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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;
}