1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-15 13:51:40 +00:00

GDScript: Allow get_script() to be considered a type

This commit is contained in:
George Marques
2020-06-03 10:32:37 -03:00
parent 519fbbfdd4
commit a0983637cf

View File

@@ -7253,6 +7253,7 @@ GDScriptParser::DataType GDScriptParser::_reduce_function_call_type(const Operat
DataType original_type = base_type; DataType original_type = base_type;
bool is_initializer = callee_name == "new"; bool is_initializer = callee_name == "new";
bool is_get_script = p_call->arguments[0]->type == Node::TYPE_SELF && callee_name == "get_script";
bool is_static = false; bool is_static = false;
bool valid = false; bool valid = false;
@@ -7271,6 +7272,14 @@ GDScriptParser::DataType GDScriptParser::_reduce_function_call_type(const Operat
valid = true; // There's always an initializer, we can assume this is true valid = true; // There's always an initializer, we can assume this is true
} }
if (is_get_script) {
// get_script() can be considered a meta-type.
return_type.kind = DataType::CLASS;
return_type.class_type = static_cast<ClassNode *>(head);
return_type.is_meta_type = true;
valid = true;
}
if (!valid) { if (!valid) {
base_type = original_type; base_type = original_type;
return_type = DataType(); return_type = DataType();