diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2019-03-04 12:27:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-04 12:27:20 +0100 |
commit | 2bc981948d254f45a0268cfc26eb0010f00b984c (patch) | |
tree | 3b068d33d62b9a0b529ea837056b9f6d215af3f3 /modules/gdscript/gdscript_function.h | |
parent | 49d82f245bf11bd9064c9de24704cbec2181b5ba (diff) | |
parent | 425ec6914c40ed0654db16f417e80daa2a84cdd0 (diff) |
Merge pull request #26573 from godotengine/revert-26562-gdscript-no-implicit-cast
Revert "Forbid implicit type conversion in GDScript"
Diffstat (limited to 'modules/gdscript/gdscript_function.h')
-rw-r--r-- | modules/gdscript/gdscript_function.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/modules/gdscript/gdscript_function.h b/modules/gdscript/gdscript_function.h index 34fc51e92a..cefc28d77f 100644 --- a/modules/gdscript/gdscript_function.h +++ b/modules/gdscript/gdscript_function.h @@ -55,7 +55,7 @@ struct GDScriptDataType { StringName native_type; Ref<Script> script_type; - bool is_type(const Variant &p_variant) const { + bool is_type(const Variant &p_variant, bool p_allow_implicit_conversion = false) const { if (!has_type) return true; // Can't type check switch (kind) { @@ -63,7 +63,11 @@ struct GDScriptDataType { break; case BUILTIN: { Variant::Type var_type = p_variant.get_type(); - return builtin_type == var_type; + bool valid = builtin_type == var_type; + if (!valid && p_allow_implicit_conversion) { + valid = Variant::can_convert_strict(var_type, builtin_type); + } + return valid; } break; case NATIVE: { if (p_variant.get_type() == Variant::NIL) { |