From 46fdf163991f6f6893e00b301267c6ef2380008e Mon Sep 17 00:00:00 2001 From: Ignacio Etcheverry Date: Wed, 9 Aug 2017 11:54:27 +0200 Subject: Improves method bind detection of signature types --- core/make_binders.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'core/make_binders.py') diff --git a/core/make_binders.py b/core/make_binders.py index 74b5e9fda..a5cdb7844 100644 --- a/core/make_binders.py +++ b/core/make_binders.py @@ -11,11 +11,18 @@ public: #ifdef DEBUG_METHODS_ENABLED virtual Variant::Type _gen_argument_type(int p_arg) const { return _get_argument_type(p_arg); } Variant::Type _get_argument_type(int p_argument) const { - $ifret if (p_argument==-1) return Variant::get_type_for();$ - $arg if (p_argument==(@-1)) return Variant::get_type_for(); + $ifret if (p_argument==-1) return (Variant::Type)GetTypeInfo::VARIANT_TYPE;$ + $arg if (p_argument==(@-1)) return (Variant::Type)GetTypeInfo::VARIANT_TYPE; $ return Variant::NIL; } + virtual StringName _gen_argument_type_name(int p_arg) const { return _gen_argument_type_hint(p_arg); } + StringName _gen_argument_type_hint(int p_argument) const { + $ifret if (p_argument==-1) return GetTypeInfo::get_class_name();$ + $arg if (p_argument==(@-1)) return GetTypeInfo::get_class_name(); + $ + return StringName(); + } #endif virtual String get_instance_class() const { return T::get_class_static(); @@ -91,11 +98,20 @@ public: virtual Variant::Type _gen_argument_type(int p_arg) const { return _get_argument_type(p_arg); } Variant::Type _get_argument_type(int p_argument) const { - $ifret if (p_argument==-1) return Variant::get_type_for();$ - $arg if (p_argument==(@-1)) return Variant::get_type_for(); + $ifret if (p_argument==-1) return (Variant::Type)GetTypeInfo::VARIANT_TYPE;$ + $arg if (p_argument==(@-1)) return (Variant::Type)GetTypeInfo::VARIANT_TYPE; $ return Variant::NIL; } + + virtual StringName _gen_argument_type_name(int p_arg) const { return _gen_argument_type_hint(p_arg); } + + StringName _gen_argument_type_hint(int p_argument) const { + $ifret if (p_argument==-1) return GetTypeInfo::get_class_name();$ + $arg if (p_argument==(@-1)) return GetTypeInfo::get_class_name(); + $ + return StringName(); + } #endif virtual String get_instance_class() const { return type_name; -- cgit v1.2.3-70-g09d2