mirror of
https://github.com/golang/go
synced 2024-11-21 20:04:44 -07:00
go: require { } around else block
R=gri, ken, r CC=golang-dev https://golang.org/cl/4721044
This commit is contained in:
parent
3f53475c97
commit
58e19aa4cb
@ -3762,7 +3762,7 @@ present, the "else" branch is executed.
|
||||
</p>
|
||||
|
||||
<pre class="ebnf">
|
||||
IfStmt = "if" [ SimpleStmt ";" ] Expression Block [ "else" Statement ] .
|
||||
IfStmt = "if" [ SimpleStmt ";" ] Expression Block [ "else" ( IfStmt | Block ) ] .
|
||||
</pre>
|
||||
|
||||
<pre>
|
||||
|
@ -1462,6 +1462,9 @@ non_dcl_stmt:
|
||||
}
|
||||
| if_stmt LELSE stmt
|
||||
{
|
||||
if($3->op != OIF && $3->op != OBLOCK)
|
||||
yyerror("missing { } after else");
|
||||
|
||||
popdcl();
|
||||
$$ = $1;
|
||||
$$->nelse = list1($3);
|
||||
|
14
test/if.go
14
test/if.go
@ -53,25 +53,28 @@ func main() {
|
||||
count = 0
|
||||
if true {
|
||||
count = count + 1
|
||||
} else
|
||||
} else {
|
||||
count = count - 1
|
||||
}
|
||||
assertequal(count, 1, "if else true")
|
||||
|
||||
count = 0
|
||||
if false {
|
||||
count = count + 1
|
||||
} else
|
||||
} else {
|
||||
count = count - 1
|
||||
}
|
||||
assertequal(count, -1, "if else false")
|
||||
|
||||
count = 0
|
||||
if t:=1; false {
|
||||
if t := 1; false {
|
||||
count = count + 1
|
||||
_ = t
|
||||
t := 7
|
||||
_ = t
|
||||
} else
|
||||
} else {
|
||||
count = count - t
|
||||
}
|
||||
assertequal(count, -1, "if else false var")
|
||||
|
||||
count = 0
|
||||
@ -80,8 +83,9 @@ func main() {
|
||||
count = count + 1
|
||||
t := 7
|
||||
_ = t
|
||||
} else
|
||||
} else {
|
||||
count = count - t
|
||||
}
|
||||
_ = t
|
||||
assertequal(count, -1, "if else false var outside")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user