}
(*budget)--
- // TODO(mdempsky): Hack to appease toolstash; remove.
- if n.Op == OSTRUCTKEY {
- (*budget)--
- }
return *budget < 0 || ishairy(n.Left, budget, reason) || ishairy(n.Right, budget, reason) ||
ishairylist(n.List, budget, reason) || ishairylist(n.Rlist, budget, reason) ||
OINDEX // Left[Right] (index of array or slice)
OINDEXMAP // Left[Right] (index of map)
OKEY // Left:Right (key:value in struct/array/map literal, or slice index pair)
+ OSTRUCTKEY // Sym:Left (key:value in struct literal, after type checking)
OIDATA // data word of an interface value in Left; TODO: move next to OITAB once it is easier to regenerate the binary blob in builtin.go (issues 15835, 15839)
OLEN // len(Left)
OMAKE // make(List) (before type checking converts to one of the following)
OGETG // runtime.getg() (read g pointer)
OEND
-
- // TODO(mdempsky): Hack to appease toolstash; move up next to OKEY.
- OSTRUCTKEY // Sym:Left (key:value in struct literal, after type checking)
)
// Nodes is a pointer to a slice of *Node.