mirror of
https://github.com/golang/go
synced 2024-11-26 07:38:00 -07:00
cmd/compile: resolve TODO in inl.go
If the condition is a bool constant, there's no need to walk both branches. Passes toolstash -cmp. Change-Id: I4ee5e3553ce07c2213efba0d33d869b4a1b57783 Reviewed-on: https://go-review.googlesource.com/c/go/+/347911 Reviewed-by: Matthew Dempsky <mdempsky@google.com> Trust: Keith Randall <khr@golang.org> Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
903958d2f5
commit
d92101f452
@ -398,10 +398,14 @@ func (v *hairyVisitor) doNode(n ir.Node) bool {
|
|||||||
n := n.(*ir.IfStmt)
|
n := n.(*ir.IfStmt)
|
||||||
if ir.IsConst(n.Cond, constant.Bool) {
|
if ir.IsConst(n.Cond, constant.Bool) {
|
||||||
// This if and the condition cost nothing.
|
// This if and the condition cost nothing.
|
||||||
// TODO(rsc): It seems strange that we visit the dead branch.
|
if doList(n.Init(), v.do) {
|
||||||
return doList(n.Init(), v.do) ||
|
return true
|
||||||
doList(n.Body, v.do) ||
|
}
|
||||||
doList(n.Else, v.do)
|
if ir.BoolVal(n.Cond) {
|
||||||
|
return doList(n.Body, v.do)
|
||||||
|
} else {
|
||||||
|
return doList(n.Else, v.do)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
case ir.ONAME:
|
case ir.ONAME:
|
||||||
|
Loading…
Reference in New Issue
Block a user