2024-01-28 15:16:09 +01:00
|
|
|
extends Node
|
|
|
|
|
|
|
|
func my_func_1(_foo, _bar):
|
|
|
|
pass
|
|
|
|
|
|
|
|
func my_func_2(_foo, _bar, _baz):
|
|
|
|
pass
|
|
|
|
|
|
|
|
static func my_static_func_1(_foo, _bar):
|
|
|
|
pass
|
|
|
|
|
|
|
|
static func my_static_func_2(_foo, _bar, _baz):
|
|
|
|
pass
|
|
|
|
|
|
|
|
@rpc
|
|
|
|
func my_rpc_func_1(_foo, _bar):
|
|
|
|
pass
|
|
|
|
|
|
|
|
@rpc
|
|
|
|
func my_rpc_func_2(_foo, _bar, _baz):
|
|
|
|
pass
|
|
|
|
|
|
|
|
func test():
|
|
|
|
# Test built-in methods.
|
|
|
|
var builtin_callable_1 : Callable = add_to_group
|
|
|
|
print(builtin_callable_1.get_argument_count()) # Should print 2.
|
|
|
|
var builtin_callable_2 : Callable = find_child
|
|
|
|
print(builtin_callable_2.get_argument_count()) # Should print 3.
|
|
|
|
|
|
|
|
# Test built-in vararg methods.
|
|
|
|
var builtin_vararg_callable_1 : Callable = call_thread_safe
|
|
|
|
print(builtin_vararg_callable_1.get_argument_count()) # Should print 1.
|
|
|
|
var builtin_vararg_callable_2 : Callable = rpc_id
|
|
|
|
print(builtin_vararg_callable_2.get_argument_count()) # Should print 2.
|
|
|
|
|
|
|
|
# Test plain methods.
|
|
|
|
var callable_1 : Callable = my_func_1
|
|
|
|
print(callable_1.get_argument_count()) # Should print 2.
|
|
|
|
var callable_2 : Callable = my_func_2
|
|
|
|
print(callable_2.get_argument_count()) # Should print 3.
|
|
|
|
|
|
|
|
# Test static methods.
|
|
|
|
var static_callable_1 : Callable = my_static_func_1
|
|
|
|
print(static_callable_1.get_argument_count()) # Should print 2.
|
|
|
|
var static_callable_2 : Callable = my_static_func_2
|
|
|
|
print(static_callable_2.get_argument_count()) # Should print 3.
|
|
|
|
|
|
|
|
# Test rpc methods.
|
|
|
|
var rpc_callable_1 : Callable = my_rpc_func_1
|
|
|
|
print(rpc_callable_1.get_argument_count()) # Should print 2.
|
|
|
|
var rpc_callable_2 : Callable = my_rpc_func_2
|
|
|
|
print(rpc_callable_2.get_argument_count()) # Should print 3.
|
|
|
|
|
|
|
|
# Test lambdas.
|
|
|
|
var lambda_callable_1 : Callable = func(_foo, _bar): pass
|
|
|
|
print(lambda_callable_1.get_argument_count()) # Should print 2.
|
|
|
|
var lambda_callable_2 : Callable = func(_foo, _bar, _baz): pass
|
|
|
|
print(lambda_callable_2.get_argument_count()) # Should print 3.
|
|
|
|
|
2024-05-07 10:05:42 +02:00
|
|
|
# Test lambdas with self.
|
2024-01-28 15:16:09 +01:00
|
|
|
var lambda_self_callable_1 : Callable = func(_foo, _bar): return self
|
|
|
|
print(lambda_self_callable_1.get_argument_count()) # Should print 2.
|
|
|
|
var lambda_self_callable_2 : Callable = func(_foo, _bar, _baz): return self
|
|
|
|
print(lambda_self_callable_2.get_argument_count()) # Should print 3.
|
|
|
|
|
|
|
|
# Test bind.
|
|
|
|
var bind_callable_1 : Callable = my_func_2.bind(1)
|
|
|
|
print(bind_callable_1.get_argument_count()) # Should print 2.
|
|
|
|
var bind_callable_2 : Callable = my_func_2.bind(1, 2)
|
|
|
|
print(bind_callable_2.get_argument_count()) # Should print 1.
|
|
|
|
|
|
|
|
# Test unbind.
|
|
|
|
var unbind_callable_1 : Callable = my_func_2.unbind(1)
|
|
|
|
print(unbind_callable_1.get_argument_count()) # Should print 4.
|
|
|
|
var unbind_callable_2 : Callable = my_func_2.unbind(2)
|
|
|
|
print(unbind_callable_2.get_argument_count()) # Should print 5.
|
|
|
|
|
|
|
|
# Test variant callables.
|
|
|
|
var string_tmp := String()
|
|
|
|
var variant_callable_1 : Callable = string_tmp.replace
|
|
|
|
print(variant_callable_1.get_argument_count()) # Should print 2.
|
|
|
|
var variant_callable_2 : Callable = string_tmp.rsplit
|
|
|
|
print(variant_callable_2.get_argument_count()) # Should print 3.
|
|
|
|
|
|
|
|
# Test variant vararg callables.
|
|
|
|
var callable_tmp := Callable()
|
|
|
|
var variant_vararg_callable_1 : Callable = callable_tmp.call
|
|
|
|
print(variant_vararg_callable_1.get_argument_count()) # Should print 0.
|
|
|
|
var variant_vararg_callable_2 : Callable = callable_tmp.rpc_id
|
|
|
|
print(variant_vararg_callable_2.get_argument_count()) # Should print 1.
|
|
|
|
|
|
|
|
# Test global methods.
|
|
|
|
var global_callable_1 = is_equal_approx
|
|
|
|
print(global_callable_1.get_argument_count()) # Should print 2.
|
|
|
|
var global_callable_2 = inverse_lerp
|
|
|
|
print(global_callable_2.get_argument_count()) # Should print 3.
|
|
|
|
|
|
|
|
# Test GDScript methods.
|
|
|
|
var gdscript_callable_1 = char
|
|
|
|
print(gdscript_callable_1.get_argument_count()) # Should print 1.
|
|
|
|
var gdscript_callable_2 = is_instance_of
|
|
|
|
print(gdscript_callable_2.get_argument_count()) # Should print 2.
|