mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2025-05-03 23:02:27 +00:00
compiler: support break in switch statements
This commit is contained in:
parent
03dc6f7cbb
commit
ccb53414f2
2 changed files with 76 additions and 2 deletions
|
@ -127,6 +127,66 @@ var switchTestCases = []testCase{
|
|||
}`,
|
||||
big.NewInt(4),
|
||||
},
|
||||
{
|
||||
"break from switch",
|
||||
`package main
|
||||
func Main() int {
|
||||
i := 3
|
||||
switch i {
|
||||
case 2: return 2
|
||||
case 3:
|
||||
i = 1
|
||||
break
|
||||
return 3
|
||||
case 4: return 4
|
||||
}
|
||||
return i
|
||||
}`,
|
||||
big.NewInt(1),
|
||||
},
|
||||
{
|
||||
"break from outer for",
|
||||
`package main
|
||||
func Main() int {
|
||||
i := 3
|
||||
loop:
|
||||
for i < 10 {
|
||||
i++
|
||||
switch i {
|
||||
case 5:
|
||||
i = 7
|
||||
break loop
|
||||
return 3
|
||||
case 6: return 4
|
||||
}
|
||||
}
|
||||
return i
|
||||
}`,
|
||||
big.NewInt(7),
|
||||
},
|
||||
{
|
||||
"continue outer for",
|
||||
`package main
|
||||
func Main() int {
|
||||
i := 2
|
||||
for i < 10 {
|
||||
i++
|
||||
switch i {
|
||||
case 3:
|
||||
i = 7
|
||||
continue
|
||||
case 4, 5, 6, 7: return 5
|
||||
case 8: return 2
|
||||
}
|
||||
|
||||
if i == 7 {
|
||||
return 6
|
||||
}
|
||||
}
|
||||
return i
|
||||
}`,
|
||||
big.NewInt(2),
|
||||
},
|
||||
}
|
||||
|
||||
func TestSwitch(t *testing.T) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue