diff options
Diffstat (limited to 'modules/gdscript/tests/scripts/runtime/features')
5 files changed, 72 insertions, 3 deletions
diff --git a/modules/gdscript/tests/scripts/runtime/features/lambda_use_self.gd b/modules/gdscript/tests/scripts/runtime/features/lambda_use_self.gd new file mode 100644 index 0000000000..3d063869ab --- /dev/null +++ b/modules/gdscript/tests/scripts/runtime/features/lambda_use_self.gd @@ -0,0 +1,23 @@ +var member = "foo" + +func bar(): +	print("bar") + +func test(): +	var lambda1 = func(): +		print(member) +	lambda1.call() + +	var lambda2 = func(): +		var nested = func(): +			print(member) +		nested.call() +	lambda2.call() + +	var lambda3 = func(): +		bar() +	lambda3.call() + +	var lambda4 = func(): +		return self +	print(lambda4.call() == self) diff --git a/modules/gdscript/tests/scripts/runtime/features/lambda_use_self.out b/modules/gdscript/tests/scripts/runtime/features/lambda_use_self.out new file mode 100644 index 0000000000..53d602b234 --- /dev/null +++ b/modules/gdscript/tests/scripts/runtime/features/lambda_use_self.out @@ -0,0 +1,5 @@ +GDTEST_OK +foo +foo +bar +true diff --git a/modules/gdscript/tests/scripts/runtime/features/params_default_values.gd b/modules/gdscript/tests/scripts/runtime/features/params_default_values.gd new file mode 100644 index 0000000000..8156b4ec68 --- /dev/null +++ b/modules/gdscript/tests/scripts/runtime/features/params_default_values.gd @@ -0,0 +1,35 @@ +# https://github.com/godotengine/godot/issues/56702 + +func test(): +	const_default() +	func_result_default() +	# calling again will run the initializer again, +	# as the default is not evaluated at time of defining the function (as in python) +	# but every time the function is called (as in C++) +	func_result_default() +	lots_of_defaults("non-optional") +	# somewhat obscure feature: referencing earlier parameters +	ref_default("non-optional", 42) + + +func const_default(param=42): +	print(param) + + +var default_val := 0 + +func get_default(): +	default_val += 1 +	return default_val + + +func func_result_default(param=get_default()): +	print(param) + + +func lots_of_defaults(nondefault, one=1, two=2, three=get_default()): +	prints(nondefault, one, two, three) + + +func ref_default(nondefault1, nondefault2, defa=nondefault1, defb=nondefault2 - 1): +	prints(nondefault1, nondefault2, defa, defb) diff --git a/modules/gdscript/tests/scripts/runtime/features/params_default_values.out b/modules/gdscript/tests/scripts/runtime/features/params_default_values.out new file mode 100644 index 0000000000..50e0885ae5 --- /dev/null +++ b/modules/gdscript/tests/scripts/runtime/features/params_default_values.out @@ -0,0 +1,6 @@ +GDTEST_OK +42 +1 +2 +non-optional 1 2 3 +non-optional 42 non-optional 41 diff --git a/modules/gdscript/tests/scripts/runtime/features/stringify.out b/modules/gdscript/tests/scripts/runtime/features/stringify.out index 7670fc0128..d4468737a5 100644 --- a/modules/gdscript/tests/scripts/runtime/features/stringify.out +++ b/modules/gdscript/tests/scripts/runtime/features/stringify.out @@ -21,14 +21,14 @@ hello/world  RID(0)  Node::get_name  Node::[signal]property_list_changed -{hello:123} -[hello, 123] +{"hello":123} +["hello", 123]  [255, 0, 1]  [-1, 0, 1]  [-1, 0, 1]  [-1, 0, 1]  [-1, 0, 1] -[hello, world] +["hello", "world"]  [(1, 1), (0, 0)]  [(1, 1, 1), (0, 0, 0)]  [(1, 0, 0, 1), (0, 0, 1, 1), (0, 1, 0, 1)]  |