GDScript: Use getter return type for the property type

The PropertyInfo hints are more relevant for the inspector. The getter
return type is more reliable and less likely to be incorrect and it is
what's going to be called in the end.
This commit is contained in:
George Marques 2021-09-21 15:29:06 -03:00
parent 49e7e049ab
commit 3a856b4fcc
No known key found for this signature in database
GPG key ID: 046BD46A3201E43D

View file

@ -2608,10 +2608,13 @@ void GDScriptAnalyzer::reduce_identifier_from_base(GDScriptParser::IdentifierNod
const StringName &native = base.native_type;
if (class_exists(native)) {
PropertyInfo prop_info;
MethodInfo method_info;
if (ClassDB::get_property_info(native, name, &prop_info)) {
p_identifier->set_datatype(type_from_property(prop_info));
if (ClassDB::has_property(native, name)) {
StringName getter_name = ClassDB::get_property_getter(native, name);
MethodBind *getter = ClassDB::get_method(native, getter_name);
if (getter != nullptr) {
p_identifier->set_datatype(type_from_property(getter->get_return_info()));
}
return;
}
if (ClassDB::get_method_info(native, name, &method_info)) {