diff options
Diffstat (limited to 'modules/gdscript/tests/scripts')
5 files changed, 92 insertions, 1 deletions
diff --git a/modules/gdscript/tests/scripts/analyzer/errors/invalid_array_index.out b/modules/gdscript/tests/scripts/analyzer/errors/invalid_array_index.out index 015ad756f8..6f7f0783f0 100644 --- a/modules/gdscript/tests/scripts/analyzer/errors/invalid_array_index.out +++ b/modules/gdscript/tests/scripts/analyzer/errors/invalid_array_index.out @@ -1,2 +1,2 @@  GDTEST_ANALYZER_ERROR -Invalid index type "bool" for a base of type "Array". +Cannot get index "true" from "[0, 1]". diff --git a/modules/gdscript/tests/scripts/parser/features/arrays_dictionaries_nested_const.gd b/modules/gdscript/tests/scripts/parser/features/arrays_dictionaries_nested_const.gd new file mode 100644 index 0000000000..cc78309ae4 --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/arrays_dictionaries_nested_const.gd @@ -0,0 +1,58 @@ +# https://github.com/godotengine/godot/issues/50285 + +@warning_ignore(unused_local_constant) +func test(): +	const CONST_INNER_DICTIONARY = { "key": true } +	const CONST_NESTED_DICTIONARY_OLD_WORKAROUND = { +		"key1": "value1", +		"key2": CONST_INNER_DICTIONARY +	} +	# All of these should be valid +	const CONST_NESTED_DICTIONARY = { +		"key1": "value1", +		"key2": { "key": true } +	} + + +	const CONST_DICTIONARY_WITH_ARRAY = { +		"key1": [1,2,3,4] +	} + +	const CONST_NESTED_ARRAY = [[],[2],[1,2,3]] +	const CONST_ARRAY_WITH_DICT = [{"key1": 3}, {"key2": 5}] + +	const THREE_DIMENSIONAL_ARRAY = [[[],[],[]],[[],[],[]],[[],[],[]]] +	const MANY_NESTED_DICT = { +		"key1": { +			"key11": { +				"key111": {}, +				"key112": {}, +			}, +			"key12": { +				"key121": {}, +				"key122": {}, +			}, +		}, +		"key2": { +			"key21": { +				"key211": {}, +				"key212": {}, +			}, +			"key22": { +				"key221": {}, +				"key222": {}, +			}, +		} +	} + + +	const CONST_ARRAY_ACCESS = [1,2,3][0] +	const CONST_DICT_ACCESS = {"key1": 5}["key1"] + +	const CONST_ARRAY_NESTED_ACCESS = [[1,2,3],[4,5,6],[8,9,10]][0][1] +	const CONST_DICT_NESTED_ACCESS = {"key1": {"key2": 1}}["key1"]["key2"] + +	print(CONST_ARRAY_ACCESS) +	print(CONST_DICT_ACCESS) +	print(CONST_ARRAY_NESTED_ACCESS) +	print(CONST_DICT_NESTED_ACCESS) diff --git a/modules/gdscript/tests/scripts/parser/features/arrays_dictionaries_nested_const.out b/modules/gdscript/tests/scripts/parser/features/arrays_dictionaries_nested_const.out new file mode 100644 index 0000000000..5883fc5c18 --- /dev/null +++ b/modules/gdscript/tests/scripts/parser/features/arrays_dictionaries_nested_const.out @@ -0,0 +1,5 @@ +GDTEST_OK +1 +5 +2 +1 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  |