Merge pull request #6055 from eska014/native-bind-rettype

Allow documenting unexposed return types in bind_native_method
This commit is contained in:
Rémi Verschelde 2016-08-08 18:23:36 +02:00 committed by GitHub
commit 5d9967ef00
3 changed files with 12 additions and 3 deletions

View file

@ -1651,7 +1651,7 @@ void Object::_bind_methods() {
} }
ObjectTypeDB::bind_native_method(METHOD_FLAGS_DEFAULT,"call",&Object::_call_bind,mi,defargs); ObjectTypeDB::bind_native_method(METHOD_FLAGS_DEFAULT,"call:Variant",&Object::_call_bind,mi,defargs);
} }
{ {

View file

@ -415,7 +415,7 @@ public:
#endif #endif
template<class M> template<class M>
static MethodBind* bind_native_method(uint32_t p_flags, const StringName& p_name, M p_method,const MethodInfo& p_info=MethodInfo(),const Vector<Variant>& p_default_args=Vector<Variant>()) { static MethodBind* bind_native_method(uint32_t p_flags, StringName p_name, M p_method,const MethodInfo& p_info=MethodInfo(),const Vector<Variant>& p_default_args=Vector<Variant>()) {
GLOBAL_LOCK_FUNCTION; GLOBAL_LOCK_FUNCTION;
@ -423,6 +423,13 @@ public:
MethodBind *bind = create_native_method_bind(p_method,p_info); MethodBind *bind = create_native_method_bind(p_method,p_info);
ERR_FAIL_COND_V(!bind,NULL); ERR_FAIL_COND_V(!bind,NULL);
String rettype;
if (p_name.operator String().find(":")!=-1) {
rettype = p_name.operator String().get_slice(":",1);
p_name = p_name.operator String().get_slice(":",0);
}
bind->set_name(p_name); bind->set_name(p_name);
bind->set_default_arguments(p_default_args); bind->set_default_arguments(p_default_args);
@ -442,6 +449,8 @@ public:
} }
type->method_map[p_name]=bind; type->method_map[p_name]=bind;
#ifdef DEBUG_METHODS_ENABLED #ifdef DEBUG_METHODS_ENABLED
if (!rettype.empty())
bind->set_return_type(rettype);
type->method_order.push_back(p_name); type->method_order.push_back(p_name);
#endif #endif

View file

@ -707,7 +707,7 @@ void GDScript::_get_property_list(List<PropertyInfo> *p_properties) const {
void GDScript::_bind_methods() { void GDScript::_bind_methods() {
ObjectTypeDB::bind_native_method(METHOD_FLAGS_DEFAULT,"new",&GDScript::_new,MethodInfo("new")); ObjectTypeDB::bind_native_method(METHOD_FLAGS_DEFAULT,"new",&GDScript::_new,MethodInfo(Variant::OBJECT,"new"));
ObjectTypeDB::bind_method(_MD("get_as_byte_code"),&GDScript::get_as_byte_code); ObjectTypeDB::bind_method(_MD("get_as_byte_code"),&GDScript::get_as_byte_code);