Core: Fix Object::has_method() for script static methods
This commit is contained in:
@ -346,6 +346,10 @@ bool GDScript::has_method(const StringName &p_method) const {
|
||||
return member_functions.has(p_method);
|
||||
}
|
||||
|
||||
bool GDScript::has_static_method(const StringName &p_method) const {
|
||||
return member_functions.has(p_method) && member_functions[p_method]->is_static();
|
||||
}
|
||||
|
||||
MethodInfo GDScript::get_method_info(const StringName &p_method) const {
|
||||
HashMap<StringName, GDScriptFunction *>::ConstIterator E = member_functions.find(p_method);
|
||||
if (!E) {
|
||||
|
||||
@ -266,6 +266,7 @@ public:
|
||||
|
||||
virtual void get_script_method_list(List<MethodInfo> *p_list) const override;
|
||||
virtual bool has_method(const StringName &p_method) const override;
|
||||
virtual bool has_static_method(const StringName &p_method) const override;
|
||||
virtual MethodInfo get_method_info(const StringName &p_method) const override;
|
||||
|
||||
virtual void get_script_property_list(List<PropertyInfo> *p_list) const override;
|
||||
|
||||
@ -0,0 +1,12 @@
|
||||
# GH-79521
|
||||
|
||||
class_name TestStaticMethodAsCallable
|
||||
|
||||
static func static_func() -> String:
|
||||
return "Test"
|
||||
|
||||
func test():
|
||||
var a: Callable = TestStaticMethodAsCallable.static_func
|
||||
var b: Callable = static_func
|
||||
prints(a.call(), a.is_valid())
|
||||
prints(b.call(), b.is_valid())
|
||||
@ -0,0 +1,3 @@
|
||||
GDTEST_OK
|
||||
Test true
|
||||
Test true
|
||||
Reference in New Issue
Block a user