summaryrefslogtreecommitdiff
path: root/modules/gdscript/gdscript_function.h
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2019-03-04 12:27:20 +0100
committerGitHub <noreply@github.com>2019-03-04 12:27:20 +0100
commit2bc981948d254f45a0268cfc26eb0010f00b984c (patch)
tree3b068d33d62b9a0b529ea837056b9f6d215af3f3 /modules/gdscript/gdscript_function.h
parent49d82f245bf11bd9064c9de24704cbec2181b5ba (diff)
parent425ec6914c40ed0654db16f417e80daa2a84cdd0 (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.h8
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) {