summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/tests/scripts/parser/features/match_dictionary.gd
blob: 7685622e5ab5593c4dc5623078b69a70ffe2a6cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
func foo(x):
	match x:
		{"key1": "value1", "key2": "value2"}:
			print('{"key1": "value1", "key2": "value2"}')
		{"key1": "value1", "key2"}:
			print('{"key1": "value1", "key2"}')
		{"key1", "key2": "value2"}:
			print('{"key1", "key2": "value2"}')
		{"key1", "key2"}:
			print('{"key1", "key2"}')
		{"key1": "value1"}:
			print('{"key1": "value1"}')
		{"key1"}:
			print('{"key1"}')
		_:
			print("wildcard")

func bar(x):
	match x:
		{0}:
			print("0")
		{1}:
			print("1")
		{2}:
			print("2")
		_:
			print("wildcard")

func baz(x):
	match x:
		{
			"key1": "value1"
		}:
			print('multiline {"key1": "value1"}')
		{
			"key2": "value2",
		}:
			print('multiline {"key2": "value2",}')
		{
			"key3": {
				"key1",
				..,
			},
		}:
			print('multiline {"key3": {"key1", ..,},}')

func test():
	foo({"key1": "value1", "key2": "value2"})
	foo({"key1": "value1", "key2": ""})
	foo({"key1": "", "key2": "value2"})
	foo({"key1": "", "key2": ""})
	foo({"key1": "value1"})
	foo({"key1": ""})
	foo({"key1": "value1", "key2": "value2", "key3": "value3"})
	foo({"key1": "value1", "key3": ""})
	foo({"key2": "value2"})
	foo({"key3": ""})
	bar({0: "0"})
	bar({1: "1"})
	bar({2: "2"})
	bar({3: "3"})
	baz({"key1": "value1"})
	baz({"key2": "value2"})
	baz({"key3": {"key1": "value1", "key2": "value2"}})