You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Merge pull request #82808 from dalexeev/gds-vararg
GDScript: Add support for variadic functions
This commit is contained in:
@@ -4,6 +4,7 @@ abstract class A:
|
||||
|
||||
# No `UNUSED_PARAMETER` warning.
|
||||
abstract func func_with_param(param: int) -> int
|
||||
abstract func func_with_rest_param(...args: Array) -> int
|
||||
abstract func func_with_semicolon() -> int;
|
||||
abstract func func_1() -> int; abstract func func_2() -> int
|
||||
abstract func func_without_return_type()
|
||||
@@ -23,6 +24,7 @@ class C extends B:
|
||||
return "text_2c"
|
||||
|
||||
func func_with_param(param: int) -> int: return param
|
||||
func func_with_rest_param(...args: Array) -> int: return args.size()
|
||||
func func_with_semicolon() -> int: return 0
|
||||
func func_1() -> int: return 0
|
||||
func func_2() -> int: return 0
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
class A:
|
||||
func f(x: int) -> void:
|
||||
print(x)
|
||||
|
||||
class B extends A:
|
||||
func f(x: int, ...args: Array) -> void:
|
||||
prints(x, args)
|
||||
|
||||
class C extends B:
|
||||
func f(x: int, y: int = 0, ...args: Array) -> void:
|
||||
prints(x, y, args)
|
||||
|
||||
class D extends C:
|
||||
func f(...args: Array) -> void:
|
||||
print(args)
|
||||
|
||||
func test_func(x: int, y: int = 0, ...args: Array) -> void:
|
||||
prints(x, y, args)
|
||||
|
||||
var test_lambda := func (x: int, y: int = 0, ...args: Array) -> void:
|
||||
prints(x, y, args)
|
||||
|
||||
func test():
|
||||
for method in get_method_list():
|
||||
if str(method.name).begins_with("test_"):
|
||||
print(Utils.get_method_signature(method))
|
||||
|
||||
test_func(1)
|
||||
test_func(1, 2)
|
||||
test_func(1, 2, 3)
|
||||
test_func(1, 2, 3, 4)
|
||||
test_func(1, 2, 3, 4, 5)
|
||||
|
||||
test_lambda.call(1)
|
||||
test_lambda.call(1, 2)
|
||||
test_lambda.call(1, 2, 3)
|
||||
test_lambda.call(1, 2, 3, 4)
|
||||
test_lambda.call(1, 2, 3, 4, 5)
|
||||
@@ -0,0 +1,12 @@
|
||||
GDTEST_OK
|
||||
func test_func(x: int, y: int = 0, ...args) -> void
|
||||
1 0 []
|
||||
1 2 []
|
||||
1 2 [3]
|
||||
1 2 [3, 4]
|
||||
1 2 [3, 4, 5]
|
||||
1 0 []
|
||||
1 2 []
|
||||
1 2 [3]
|
||||
1 2 [3, 4]
|
||||
1 2 [3, 4, 5]
|
||||
Reference in New Issue
Block a user