Change-Id: Id0f4955588ae8027a24465b456c90d0543d60db2
Reviewed-on: https://go-review.googlesource.com/c/go/+/200581
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
o.mapAssign(n)
o.cleanTemp(t)
- case OAS2,
- OCLOSE,
- OCOPY,
- OPRINT,
- OPRINTN,
- ORECOVER,
- ORECV:
- t := o.markTemp()
- n.Left = o.expr(n.Left, nil)
- n.Right = o.expr(n.Right, nil)
- o.exprList(n.List)
- o.exprList(n.Rlist)
- switch n.Op {
- case OAS2:
- o.mapAssign(n)
- default:
- o.out = append(o.out, n)
- }
- o.cleanTemp(t)
-
case OASOP:
t := o.markTemp()
n.Left = o.expr(n.Left, nil)
o.mapAssign(n)
o.cleanTemp(t)
+ case OAS2:
+ t := o.markTemp()
+ o.exprList(n.List)
+ o.exprList(n.Rlist)
+ o.mapAssign(n)
+ o.cleanTemp(t)
+
// Special: avoid copy of func call n.Right
case OAS2FUNC:
t := o.markTemp()
o.out = append(o.out, n)
o.cleanTemp(t)
+ case OCLOSE,
+ OCOPY,
+ OPRINT,
+ OPRINTN,
+ ORECOVER,
+ ORECV:
+ t := o.markTemp()
+ n.Left = o.expr(n.Left, nil)
+ n.Right = o.expr(n.Right, nil)
+ o.exprList(n.List)
+ o.exprList(n.Rlist)
+ o.out = append(o.out, n)
+ o.cleanTemp(t)
+
// Special: order arguments to inner call but not call itself.
case ODEFER, OGO:
t := o.markTemp()