Added tests for expression matching
This commit is contained in:
parent
6c258a89de
commit
15ccd83ada
@ -1746,8 +1746,9 @@ GDScriptParser::MatchBranchNode *GDScriptParser::parse_match_branch() {
|
||||
push_error(R"(No pattern found for "match" branch.)");
|
||||
}
|
||||
|
||||
if (!consume(GDScriptTokenizer::Token::COLON, R"(Expected ":" after "match" patterns.)"))
|
||||
if (!consume(GDScriptTokenizer::Token::COLON, R"(Expected ":" after "match" patterns.)")) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// Save continue state.
|
||||
bool could_continue = can_continue;
|
||||
|
@ -0,0 +1,34 @@
|
||||
func foo(x):
|
||||
match x:
|
||||
1 + 1:
|
||||
print("1+1")
|
||||
[1,2,[1,{1:2,2:var z,..}]]:
|
||||
print("[1,2,[1,{1:2,2:var z,..}]]")
|
||||
print(z)
|
||||
1 if true else 2:
|
||||
print("1 if true else 2")
|
||||
1 < 2:
|
||||
print("1 < 2")
|
||||
1 or 2 and 1:
|
||||
print("1 or 2 and 1")
|
||||
6 | 1:
|
||||
print("1 | 1")
|
||||
1 >> 1:
|
||||
print("1 >> 1")
|
||||
1, 2 or 3, 4:
|
||||
print("1, 2 or 3, 4")
|
||||
_:
|
||||
print("wildcard")
|
||||
|
||||
func test():
|
||||
foo(6 | 1)
|
||||
foo(1 >> 1)
|
||||
foo(2)
|
||||
foo(1)
|
||||
foo(1+1)
|
||||
foo(1 < 2)
|
||||
foo([2, 1])
|
||||
foo(4)
|
||||
foo([1, 2, [1, {1 : 2, 2:3}]])
|
||||
foo([1, 2, [1, {1 : 2, 2:[1,3,5, "123"], 4:2}]])
|
||||
foo([1, 2, [1, {1 : 2}]])
|
@ -0,0 +1,14 @@
|
||||
GDTEST_OK
|
||||
1 | 1
|
||||
1 >> 1
|
||||
1+1
|
||||
1 if true else 2
|
||||
1+1
|
||||
1 < 2
|
||||
wildcard
|
||||
1, 2 or 3, 4
|
||||
[1,2,[1,{1:2,2:var z,..}]]
|
||||
3
|
||||
[1,2,[1,{1:2,2:var z,..}]]
|
||||
[1, 3, 5, 123]
|
||||
wildcard
|
@ -0,0 +1,27 @@
|
||||
func foo(x):
|
||||
match x:
|
||||
1:
|
||||
print("1")
|
||||
2:
|
||||
print("2")
|
||||
[1, 2]:
|
||||
print("[1, 2]")
|
||||
3 or 4:
|
||||
print("3 or 4")
|
||||
4:
|
||||
print("4")
|
||||
{1 : 2, 2 : 3}:
|
||||
print("{1 : 2, 2 : 3}")
|
||||
_:
|
||||
print("wildcard")
|
||||
|
||||
func test():
|
||||
foo(0)
|
||||
foo(1)
|
||||
foo(2)
|
||||
foo([1, 2])
|
||||
foo(3)
|
||||
foo(4)
|
||||
foo([4,4])
|
||||
foo({1 : 2, 2 : 3})
|
||||
foo({1 : 2, 4 : 3})
|
@ -0,0 +1,10 @@
|
||||
GDTEST_OK
|
||||
wildcard
|
||||
1
|
||||
2
|
||||
[1, 2]
|
||||
wildcard
|
||||
4
|
||||
wildcard
|
||||
{1 : 2, 2 : 3}
|
||||
wildcard
|
Loading…
Reference in New Issue
Block a user