1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-05 12:10:55 +00:00

GDScript: Allow strict conversion when assigning typed variables

This commit is contained in:
George Marques
2018-07-25 13:12:07 -03:00
parent 96ee93e8c7
commit 1ac9c0fe3a

View File

@@ -743,13 +743,18 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
GD_ERR_BREAK(var_type < 0 || var_type >= Variant::VARIANT_MAX); GD_ERR_BREAK(var_type < 0 || var_type >= Variant::VARIANT_MAX);
if (src->get_type() != var_type) { if (src->get_type() != var_type) {
err_text = "Trying to assign value of type '" + Variant::get_type_name(src->get_type()) + if (Variant::can_convert_strict(src->get_type(), var_type)) {
"' to a variable of type '" + Variant::get_type_name(var_type) + "'."; Variant::CallError ce;
OPCODE_BREAK; *dst = Variant::construct(var_type, const_cast<const Variant **>(&src), 1, ce);
} else {
err_text = "Trying to assign value of type '" + Variant::get_type_name(src->get_type()) +
"' to a variable of type '" + Variant::get_type_name(var_type) + "'.";
OPCODE_BREAK;
}
} else {
*dst = *src;
} }
*dst = *src;
ip += 4; ip += 4;
} }
DISPATCH_OPCODE; DISPATCH_OPCODE;