Functions
            
            
               
                  ABIWrapper 
                  method
                  
                  #
               
               
               func (f *Func) ABIWrapper() bool
            
            
            
               
                  Add 
                  method
                  
                  #
               
               
               Add adds n to s.
               
               func (s *NameSet) Add(n *Name)
            
            
            
               
                  Addrtaken 
                  method
                  
                  #
               
               
               func (n *Name) Addrtaken() bool
            
            
            
               
                  Alias 
                  method
                  
                  #
               
               
               Alias reports whether p, which must be for an OTYPE, is a type alias.
               
               func (n *Name) Alias() bool
            
            
            
               
                  Any 
                  function
                  
                  #
               
               
               Any looks for a non-nil node x in the IR tree rooted at n
for which cond(x) returns true.
Any considers nodes in a depth-first, preorder traversal.
When Any finds a node x such that cond(x) is true,
Any ends the traversal and returns true immediately.
Otherwise Any returns false after completing the entire traversal.
               
               func Any(n Node, cond func(Node) bool) bool
            
            
            
               
                  AnyList 
                  function
                  
                  #
               
               
               AnyList calls Any(x, cond) for each node x in the list, in order.
If any call returns true, AnyList stops and returns true.
Otherwise, AnyList returns false after calling Any(x, cond)
for every x in the list.
               
               func AnyList(list Nodes, cond func(Node) bool) bool
            
            
            
               
                  Append 
                  method
                  
                  #
               
               
               Append appends entries to Nodes.
               
               func (n *Nodes) Append(a ...Node)
            
            
            
               
                  AssertValidTypeForConst 
                  function
                  
                  #
               
               
               func AssertValidTypeForConst(t *types.Type, v constant.Value)
            
            
            
               
                  AutoTemp 
                  method
                  
                  #
               
               
               func (n *Name) AutoTemp() bool
            
            
            
               
                  BigFloat 
                  function
                  
                  #
               
               
               func BigFloat(v constant.Value) *big.Float
            
            
            
               
                  BoolVal 
                  function
                  
                  #
               
               
               BoolVal returns n as a bool.
n must be a boolean constant.
               
               func BoolVal(n Node) bool
            
            
            
               
                  Bounded 
                  method
                  
                  #
               
               
               func (n *miniExpr) Bounded() bool
            
            
            
               
                  Byval 
                  method
                  
                  #
               
               
               func (n *Name) Byval() bool
            
            
            
               
                  CanBeAnSSAAux 
                  method
                  
                  #
               
               
               func (*Name) CanBeAnSSAAux()
            
            
            
               
                  CanBeAnSSASym 
                  method
                  
                  #
               
               
               func (*Name) CanBeAnSSASym()
            
            
            
               
                  CanBeNtype 
                  method
                  
                  #
               
               
               func (*Name) CanBeNtype()
            
            
            
               
                  Canonical 
                  method
                  
                  #
               
               
               Canonical returns the logical declaration that n represents. If n
is a closure variable, then Canonical returns the original Name as
it appears in the function that immediately contains the
declaration. Otherwise, Canonical simply returns n itself.
               
               func (n *Name) Canonical() *Name
            
            
            
               
                  CheckPtr 
                  method
                  
                  #
               
               
               func (n *ConvExpr) CheckPtr() bool
            
            
            
               
                  ClosureDebugRuntimeCheck 
                  function
                  
                  #
               
               
               ClosureDebugRuntimeCheck applies boilerplate checks for debug flags
and compiling runtime.
               
               func ClosureDebugRuntimeCheck(clo *ClosureExpr)
            
            
            
               
                  ClosureResultsLost 
                  method
                  
                  #
               
               
               func (f *Func) ClosureResultsLost() bool
            
            
            
               
                  ConstOverflow 
                  function
                  
                  #
               
               
               ConstOverflow reports whether constant value v is too large
to represent with type t.
               
               func ConstOverflow(v constant.Value, t *types.Type) bool
            
            
            
               
                  ConstType 
                  function
                  
                  #
               
               
               func ConstType(n Node) constant.Kind
            
            
            
               
                  Copy 
                  method
                  
                  #
               
               
               Copy returns a copy of the content of the slice.
               
               func (n Nodes) Copy() Nodes
            
            
            
               
                  Copy 
                  function
                  
                  #
               
               
               Copy returns a shallow copy of n.
               
               func Copy(n Node) Node
            
            
            
               
                  CoverageAuxVar 
                  method
                  
                  #
               
               
               func (n *Name) CoverageAuxVar() bool
            
            
            
               
                  DeclareParams 
                  method
                  
                  #
               
               
               DeclareParams creates Names for all of the parameters in fn's
signature and adds them to fn.Dcl.
If setNname is true, then it also sets types.Field.Nname for each
parameter.
               
               func (fn *Func) DeclareParams(setNname bool)
            
            
            
               
                  DeclaredBy 
                  function
                  
                  #
               
               
               DeclaredBy reports whether expression x refers (directly) to a
variable that was declared by the given statement.
               
               func DeclaredBy(x Node, stmt Node) bool
            
            
            
               
                  DeepCopy 
                  function
                  
                  #
               
               
               DeepCopy returns a “deep” copy of n, with its entire structure copied
(except for shared nodes like ONAME, ONONAME, OLITERAL, and OTYPE).
If pos.IsKnown(), it sets the source position of newly allocated Nodes to pos.
               
               func DeepCopy(pos src.XPos, n Node) Node
            
            
            
               
                  DeepCopyList 
                  function
                  
                  #
               
               
               DeepCopyList returns a list of deep copies (using DeepCopy) of the nodes in list.
               
               func DeepCopyList(pos src.XPos, list []Node) []Node
            
            
            
               
                  DoChildren 
                  function
                  
                  #
               
               
               DoChildren calls do(x) on each of n's non-nil child nodes x.
If any call returns true, DoChildren stops and returns true.
Otherwise, DoChildren returns false.
Note that DoChildren(n, do) only calls do(x) for n's immediate children.
If x's children should be processed, then do(x) must call DoChildren(x, do).
DoChildren allows constructing general traversals of the IR graph
that can stop early if needed. The most general usage is:
var do func(ir.Node) bool
do = func(x ir.Node) bool {
... processing BEFORE visiting children ...
if ... should visit children ... {
ir.DoChildren(x, do)
... processing AFTER visiting children ...
}
if ... should stop parent DoChildren call from visiting siblings ... {
return true
}
return false
}
do(root)
Since DoChildren does not return true itself, if the do function
never wants to stop the traversal, it can assume that DoChildren
itself will always return false, simplifying to:
var do func(ir.Node) bool
do = func(x ir.Node) bool {
... processing BEFORE visiting children ...
if ... should visit children ... {
ir.DoChildren(x, do)
}
... processing AFTER visiting children ...
return false
}
do(root)
The Visit function illustrates a further simplification of the pattern,
only processing before visiting children and never stopping:
func Visit(n ir.Node, visit func(ir.Node)) {
if n == nil {
return
}
var do func(ir.Node) bool
do = func(x ir.Node) bool {
visit(x)
return ir.DoChildren(x, do)
}
do(n)
}
The Any function illustrates a different simplification of the pattern,
visiting each node and then its children, recursively, until finding
a node x for which cond(x) returns true, at which point the entire
traversal stops and returns true.
func Any(n ir.Node, cond(ir.Node) bool) bool {
if n == nil {
return false
}
var do func(ir.Node) bool
do = func(x ir.Node) bool {
return cond(x) || ir.DoChildren(x, do)
}
return do(n)
}
Visit and Any are presented above as examples of how to use
DoChildren effectively, but of course, usage that fits within the
simplifications captured by Visit or Any will be best served
by directly calling the ones provided by this package.
               
               func DoChildren(n Node, do func(Node) bool) bool
            
            
            
               
                  DoChildrenWithHidden 
                  function
                  
                  #
               
               
               DoChildrenWithHidden is like DoChildren, but also visits
Node-typed fields tagged with `mknode:"-"`.
TODO(mdempsky): Remove the `mknode:"-"` tags so this function can
go away.
               
               func DoChildrenWithHidden(n Node, do func(Node) bool) bool
            
            
            
               
                  Dump 
                  function
                  
                  #
               
               
               Dump prints the message s followed by a debug dump of n.
               
               func Dump(s string, n Node)
            
            
            
               
                  DumpAny 
                  function
                  
                  #
               
               
               DumpAny is like FDumpAny but prints to stderr.
               
               func DumpAny(root interface{}, filter string, depth int)
            
            
            
               
                  DumpList 
                  function
                  
                  #
               
               
               DumpList prints the message s followed by a debug dump of each node in the list.
               
               func DumpList(s string, list Nodes)
            
            
            
               
                  Dupok 
                  method
                  
                  #
               
               
               func (f *Func) Dupok() bool
            
            
            
               
                  EditChildren 
                  function
                  
                  #
               
               
               EditChildren edits the child nodes of n, replacing each child x with edit(x).
Note that EditChildren(n, edit) only calls edit(x) for n's immediate children.
If x's children should be processed, then edit(x) must call EditChildren(x, edit).
EditChildren allows constructing general editing passes of the IR graph.
The most general usage is:
var edit func(ir.Node) ir.Node
edit = func(x ir.Node) ir.Node {
... processing BEFORE editing children ...
if ... should edit children ... {
EditChildren(x, edit)
... processing AFTER editing children ...
}
... return x ...
}
n = edit(n)
EditChildren edits the node in place. To edit a copy, call Copy first.
As an example, a simple deep copy implementation would be:
func deepCopy(n ir.Node) ir.Node {
var edit func(ir.Node) ir.Node
edit = func(x ir.Node) ir.Node {
x = ir.Copy(x)
ir.EditChildren(x, edit)
return x
}
return edit(n)
}
Of course, in this case it is better to call ir.DeepCopy than to build one anew.
               
               func EditChildren(n Node, edit func(Node) Node)
            
            
            
               
                  EditChildrenWithHidden 
                  function
                  
                  #
               
               
               EditChildrenWithHidden is like EditChildren, but also edits
Node-typed fields tagged with `mknode:"-"`.
TODO(mdempsky): Remove the `mknode:"-"` tags so this function can
go away.
               
               func EditChildrenWithHidden(n Node, edit func(Node) Node)
            
            
            
               
                  Empty 
                  method
                  
                  #
               
               
               Empty reports whether q contains no Names.
               
               func (q *NameQueue) Empty() bool
            
            
            
               
                  Esc 
                  method
                  
                  #
               
               
               func (n *miniNode) Esc() uint16
            
            
            
               
                  FDumpAny 
                  function
                  
                  #
               
               
               FDumpAny prints the structure of a rooted data structure
to w by depth-first traversal of the data structure.
The filter parameter is a regular expression. If it is
non-empty, only struct fields whose names match filter
are printed.
The depth parameter controls how deep traversal recurses
before it returns (higher value means greater depth).
If an empty field filter is given, a good depth default value
is 4. A negative depth means no depth limit, which may be fine
for small data structures or if there is a non-empty filter.
In the output, Node structs are identified by their Op name
rather than their type; struct fields with zero values or
non-matching field names are omitted, and "…" means recursion
depth has been reached or struct fields have been omitted.
               
               func FDumpAny(w io.Writer, root interface{}, filter string, depth int)
            
            
            
               
                  FDumpList 
                  function
                  
                  #
               
               
               FDumpList prints to w the message s followed by a debug dump of each node in the list.
               
               func FDumpList(w io.Writer, s string, list Nodes)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *InlineMarkStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *IndexExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               Format implements formatting for an Op.
The valid formats are:
%v	Go syntax ("+", "<-", "print")
%+v	Debug syntax ("ADD", "RECV", "PRINT")
               
               func (o Op) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               Format implements formatting for a Nodes.
The valid formats are:
%v	Go syntax, semicolon-separated
%.v	Go syntax, comma-separated
%+v	Debug syntax, as in DumpList.
               
               func (l Nodes) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *Decl) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *SliceHeaderExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *BlockStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *KeyExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *StructKeyExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *JumpTableStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *TypeAssertExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *SendStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *SelectStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *ReturnStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *CommClause) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *DynamicType) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *ResultExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *LabelStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *BinaryExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *RangeStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *GoDeferStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *TypeSwitchGuard) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *ForStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *BranchStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *ClosureExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *ParenExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *SwitchStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *BasicLit) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *InterfaceSwitchStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *UnaryExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *AddStringExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *NilExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *Name) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *CaseClause) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *CallExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *Ident) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *AddrExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *AssignStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *StringHeaderExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *typeNode) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *MakeExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *AssignOpStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *TailCallStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *StarExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *IfStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *LogicalExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *DynamicTypeAssertExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *ConvExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *AssignListStmt) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *LinksymOffsetExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *Func) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *CompLitExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *SliceExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  Format 
                  method
                  
                  #
               
               
               func (n *InlinedCallExpr) Format(s fmt.State, verb rune)
            
            
            
               
                  FrameOffset 
                  method
                  
                  #
               
               
               func (n *Name) FrameOffset() int64
            
            
            
               
                  FuncName 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) FuncName() *Name
            
            
            
               
                  FuncName 
                  function
                  
                  #
               
               
               FuncName returns the name (without the package) of the function f.
               
               func FuncName(f *Func) string
            
            
            
               
                  FuncPC 
                  function
                  
                  #
               
               
               FuncPC returns a uintptr-typed expression that evaluates to the PC of a
function as uintptr, as returned by internal/abi.FuncPC{ABI0,ABIInternal}.
n should be a Node of an interface type, as is passed to
internal/abi.FuncPC{ABI0,ABIInternal}.
TODO(prattmic): Since n is simply an interface{} there is no assertion that
it is actually a function at all. Perhaps we should emit a runtime type
assertion?
               
               func FuncPC(pos src.XPos, n Node, wantABI obj.ABI) Node
            
            
            
               
                  FuncSymName 
                  function
                  
                  #
               
               
               func FuncSymName(s *types.Sym) string
            
            
            
               
                  GoString 
                  method
                  
                  #
               
               
               GoString returns the Go syntax for the Op, or else its name.
               
               func (o Op) GoString() string
            
            
            
               
                  Has 
                  method
                  
                  #
               
               
               Has reports whether s contains n.
               
               func (s NameSet) Has(n *Name) bool
            
            
            
               
                  HasDefer 
                  method
                  
                  #
               
               
               func (f *Func) HasDefer() bool
            
            
            
               
                  HasUniquePos 
                  function
                  
                  #
               
               
               HasUniquePos reports whether n has a unique position that can be
used for reporting error messages.
It's primarily used to distinguish references to named objects,
whose Pos will point back to their declaration position rather than
their usage position.
               
               func HasUniquePos(n Node) bool
            
            
            
               
                  Implicit 
                  method
                  
                  #
               
               
               func (n *AddrExpr) Implicit() bool
            
            
            
               
                  Implicit 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) Implicit() bool
            
            
            
               
                  Implicit 
                  method
                  
                  #
               
               
               func (n *StarExpr) Implicit() bool
            
            
            
               
                  Implicit 
                  method
                  
                  #
               
               
               func (n *CompLitExpr) Implicit() bool
            
            
            
               
                  Implicit 
                  method
                  
                  #
               
               
               func (n *ConvExpr) Implicit() bool
            
            
            
               
                  Implicit 
                  method
                  
                  #
               
               
               func (n *ParenExpr) Implicit() bool
            
            
            
               
                  Init 
                  method
                  
                  #
               
               
               Init initializes the oracle based on the IR in function fn, laying
the groundwork for future calls to the StaticValue and Reassigned
methods. If the fn's IR is subsequently modified, Init must be
called again.
               
               func (ro *ReassignOracle) Init(fn *Func)
            
            
            
               
                  Init 
                  method
                  
                  #
               
               
               func (n *miniExpr) Init() Nodes
            
            
            
               
                  Init 
                  method
                  
                  #
               
               
               func (n *miniNode) Init() Nodes
            
            
            
               
                  Init 
                  method
                  
                  #
               
               
               func (n *miniStmt) Init() Nodes
            
            
            
               
                  InitExpr 
                  function
                  
                  #
               
               
               The result of InitExpr MUST be assigned back to n, e.g.
n.X = InitExpr(init, n.X)
               
               func InitExpr(init []Node, expr Node) Node
            
            
            
               
                  InitLSym 
                  function
                  
                  #
               
               
               InitLSym defines f's obj.LSym and initializes it based on the
properties of f. This includes setting the symbol flags and ABI and
creating and initializing related DWARF symbols.
InitLSym must be called exactly once per function and must be
called for both functions with bodies and functions without bodies.
For body-less functions, we only create the LSym; for functions
with bodies call a helper to setup up / populate the LSym.
               
               func InitLSym(f *Func, hasBody bool)
            
            
            
               
                  InlFormal 
                  method
                  
                  #
               
               
               func (n *Name) InlFormal() bool
            
            
            
               
                  InlLocal 
                  method
                  
                  #
               
               
               func (n *Name) InlLocal() bool
            
            
            
               
                  InlinabilityChecked 
                  method
                  
                  #
               
               
               func (f *Func) InlinabilityChecked() bool
            
            
            
               
                  Int64Val 
                  function
                  
                  #
               
               
               Int64Val returns n as an int64.
n must be an integer or rune constant.
               
               func Int64Val(n Node) int64
            
            
            
               
                  IntVal 
                  function
                  
                  #
               
               
               IntVal returns v converted to int64.
Note: if t is uint64, very large values will be converted to negative int64.
               
               func IntVal(t *types.Type, v constant.Value) int64
            
            
            
               
                  IsAddressable 
                  function
                  
                  #
               
               
               lvalue etc
               
               func IsAddressable(n Node) bool
            
            
            
               
                  IsAutoTmp 
                  function
                  
                  #
               
               
               IsAutoTmp indicates if n was created by the compiler as a temporary,
based on the setting of the .AutoTemp flag in n's Name.
               
               func IsAutoTmp(n Node) bool
            
            
            
               
                  IsBlank 
                  function
                  
                  #
               
               
               func IsBlank(n Node) bool
            
            
            
               
                  IsClosure 
                  method
                  
                  #
               
               
               IsClosure reports whether f is a function literal that captures at least one value.
               
               func (f *Func) IsClosure() bool
            
            
            
               
                  IsClosureVar 
                  method
                  
                  #
               
               
               func (n *Name) IsClosureVar() bool
            
            
            
               
                  IsCmp 
                  method
                  
                  #
               
               
               IsCmp reports whether op is a comparison operation (==, !=, <, <=,
>, or >=).
               
               func (op Op) IsCmp() bool
            
            
            
               
                  IsConst 
                  function
                  
                  #
               
               
               func IsConst(n Node, ct constant.Kind) bool
            
            
            
               
                  IsConstNode 
                  function
                  
                  #
               
               
               IsConstNode reports whether n is a Go language constant (as opposed to a
compile-time constant).
Expressions derived from nil, like string([]byte(nil)), while they
may be known at compile time, are not Go language constants.
               
               func IsConstNode(n Node) bool
            
            
            
               
                  IsFuncPCIntrinsic 
                  function
                  
                  #
               
               
               IsFuncPCIntrinsic returns whether n is a direct call of internal/abi.FuncPCABIxxx functions.
               
               func IsFuncPCIntrinsic(n *CallExpr) bool
            
            
            
               
                  IsIfaceOfFunc 
                  function
                  
                  #
               
               
               IsIfaceOfFunc inspects whether n is an interface conversion from a direct
reference of a func. If so, it returns referenced Func; otherwise nil.
This is only usable before walk.walkConvertInterface, which converts to an
OMAKEFACE.
               
               func IsIfaceOfFunc(n Node) *Func
            
            
            
               
                  IsMethod 
                  function
                  
                  #
               
               
               IsMethod reports whether n is a method.
n must be a function or a method.
               
               func IsMethod(n Node) bool
            
            
            
               
                  IsNil 
                  function
                  
                  #
               
               
               IsNil reports whether n represents the universal untyped zero value "nil".
               
               func IsNil(n Node) bool
            
            
            
               
                  IsOutputParamHeapAddr 
                  method
                  
                  #
               
               
               func (n *Name) IsOutputParamHeapAddr() bool
            
            
            
               
                  IsOutputParamInRegisters 
                  method
                  
                  #
               
               
               func (n *Name) IsOutputParamInRegisters() bool
            
            
            
               
                  IsPackageInit 
                  method
                  
                  #
               
               
               func (f *Func) IsPackageInit() bool
            
            
            
            
            
               
                  IsSlice3 
                  method
                  
                  #
               
               
               IsSlice3 reports whether o is a slice3 op (OSLICE3, OSLICE3ARR).
o must be a slicing op.
               
               func (o Op) IsSlice3() bool
            
            
            
               
                  IsSmallIntConst 
                  function
                  
                  #
               
               
               func IsSmallIntConst(n Node) bool
            
            
            
               
                  IsSynthetic 
                  function
                  
                  #
               
               
               func IsSynthetic(n Node) bool
            
            
            
               
                  IsZero 
                  function
                  
                  #
               
               
               func IsZero(n Node) bool
            
            
            
               
                  Libfuzzer8BitCounter 
                  method
                  
                  #
               
               
               func (n *Name) Libfuzzer8BitCounter() bool
            
            
            
               
                  Line 
                  function
                  
                  #
               
               
               Line returns n's position as a string. If n has been inlined,
it uses the outermost position where n has been inlined.
               
               func Line(n Node) string
            
            
            
               
                  LinkFuncName 
                  function
                  
                  #
               
               
               LinkFuncName returns the name of the function f, as it will appear in the
symbol table of the final linked binary.
               
               func LinkFuncName(f *Func) string
            
            
            
               
                  Linksym 
                  method
                  
                  #
               
               
               func (n *Name) Linksym() *obj.LSym
            
            
            
               
                  Linksym 
                  method
                  
                  #
               
               
               func (f *Func) Linksym() *obj.LSym
            
            
            
               
                  LinksymABI 
                  method
                  
                  #
               
               
               func (f *Func) LinksymABI(abi obj.ABI) *obj.LSym
            
            
            
               
                  LinksymABI 
                  method
                  
                  #
               
               
               func (n *Name) LinksymABI(abi obj.ABI) *obj.LSym
            
            
            
               
                  LookupMethodSelector 
                  function
                  
                  #
               
               
               LookupMethodSelector returns the types.Sym of the selector for a method
named in local symbol name, as well as the types.Sym of the receiver.
TODO(prattmic): this does not attempt to handle method suffixes (wrappers).
               
               func LookupMethodSelector(pkg *types.Pkg, name string) (typ *types.Sym, meth *types.Sym, err error)
            
            
            
               
                  MarkNonNil 
                  method
                  
                  #
               
               
               func (n *miniExpr) MarkNonNil()
            
            
            
               
                  MarkNonNil 
                  method
                  
                  #
               
               
               func (n *miniNode) MarkNonNil()
            
            
            
               
                  MarkReadonly 
                  method
                  
                  #
               
               
               MarkReadonly indicates that n is an ONAME with readonly contents.
               
               func (n *Name) MarkReadonly()
            
            
            
               
                  MayBeShared 
                  function
                  
                  #
               
               
               MayBeShared reports whether n may occur in multiple places in the AST.
Extra care must be taken when mutating such a node.
               
               func MayBeShared(n Node) bool
            
            
            
               
                  MethodExprFunc 
                  function
                  
                  #
               
               
               MethodExprFunc is like MethodExprName, but returns the types.Field instead.
               
               func MethodExprFunc(n Node) *types.Field
            
            
            
               
                  MethodExprName 
                  function
                  
                  #
               
               
               MethodExprName returns the ONAME representing the method
referenced by expression n, which must be a method selector,
method expression, or method value.
               
               func MethodExprName(n Node) *Name
            
            
            
               
                  MethodSym 
                  function
                  
                  #
               
               
               MethodSym returns the method symbol representing a method name
associated with a specific receiver type.
Method symbols can be used to distinguish the same method appearing
in different method sets. For example, T.M and (*T).M have distinct
method symbols.
The returned symbol will be marked as a function.
               
               func MethodSym(recv *types.Type, msym *types.Sym) *types.Sym
            
            
            
               
                  MethodSymSuffix 
                  function
                  
                  #
               
               
               MethodSymSuffix is like MethodSym, but allows attaching a
distinguisher suffix. To avoid collisions, the suffix must not
start with a letter, number, or period.
               
               func MethodSymSuffix(recv *types.Type, msym *types.Sym, suffix string) *types.Sym
            
            
            
               
                  Name 
                  method
                  
                  #
               
               
               func (n *miniNode) Name() *Name
            
            
            
               
                  Name 
                  method
                  
                  #
               
               
               func (n *Name) Name() *Name
            
            
            
               
                  Needctxt 
                  method
                  
                  #
               
               
               func (f *Func) Needctxt() bool
            
            
            
               
                  Needzero 
                  method
                  
                  #
               
               
               func (n *Name) Needzero() bool
            
            
            
               
                  NeverReturns 
                  method
                  
                  #
               
               
               func (f *Func) NeverReturns() bool
            
            
            
               
                  NewAddStringExpr 
                  function
                  
                  #
               
               
               func NewAddStringExpr(pos src.XPos, list []Node) *AddStringExpr
            
            
            
               
                  NewAddrExpr 
                  function
                  
                  #
               
               
               func NewAddrExpr(pos src.XPos, x Node) *AddrExpr
            
            
            
               
                  NewAssignListStmt 
                  function
                  
                  #
               
               
               func NewAssignListStmt(pos src.XPos, op Op, lhs []Node, rhs []Node) *AssignListStmt
            
            
            
               
                  NewAssignOpStmt 
                  function
                  
                  #
               
               
               func NewAssignOpStmt(pos src.XPos, asOp Op, x Node, y Node) *AssignOpStmt
            
            
            
               
                  NewAssignStmt 
                  function
                  
                  #
               
               
               func NewAssignStmt(pos src.XPos, x Node, y Node) *AssignStmt
            
            
            
               
                  NewBasicLit 
                  function
                  
                  #
               
               
               NewBasicLit returns an OLITERAL representing val with the given type.
               
               func NewBasicLit(pos src.XPos, typ *types.Type, val constant.Value) Node
            
            
            
               
                  NewBinaryExpr 
                  function
                  
                  #
               
               
               func NewBinaryExpr(pos src.XPos, op Op, x Node, y Node) *BinaryExpr
            
            
            
               
                  NewBlockStmt 
                  function
                  
                  #
               
               
               func NewBlockStmt(pos src.XPos, list []Node) *BlockStmt
            
            
            
               
                  NewBool 
                  function
                  
                  #
               
               
               NewBool returns an OLITERAL representing b as an untyped boolean.
               
               func NewBool(pos src.XPos, b bool) Node
            
            
            
               
                  NewBranchStmt 
                  function
                  
                  #
               
               
               func NewBranchStmt(pos src.XPos, op Op, label *types.Sym) *BranchStmt
            
            
            
               
                  NewBuiltin 
                  function
                  
                  #
               
               
               NewBuiltin returns a new Name representing a builtin function,
either predeclared or from package unsafe.
               
               func NewBuiltin(sym *types.Sym, op Op) *Name
            
            
            
               
                  NewCallExpr 
                  function
                  
                  #
               
               
               func NewCallExpr(pos src.XPos, op Op, fun Node, args []Node) *CallExpr
            
            
            
               
                  NewCaseStmt 
                  function
                  
                  #
               
               
               func NewCaseStmt(pos src.XPos, list []Node, body []Node) *CaseClause
            
            
            
               
                  NewClosureFunc 
                  function
                  
                  #
               
               
               NewClosureFunc creates a new Func to represent a function literal
with the given type.
fpos the position used for the underlying ODCLFUNC and ONAME,
whereas cpos is the position used for the OCLOSURE. They're
separate because in the presence of inlining, the OCLOSURE node
should have an inline-adjusted position, whereas the ODCLFUNC and
ONAME must not.
outerfn is the enclosing function. The returned function is
appending to pkg.Funcs.
why is the reason we're generating this Func. It can be OCLOSURE
(for a normal function literal) or OGO or ODEFER (for wrapping a
call expression that has parameters or results).
               
               func NewClosureFunc(fpos src.XPos, cpos src.XPos, why Op, typ *types.Type, outerfn *Func, pkg *Package) *Func
            
            
            
               
                  NewClosureVar 
                  function
                  
                  #
               
               
               NewClosureVar returns a new closure variable for fn to refer to
outer variable n.
               
               func NewClosureVar(pos src.XPos, fn *Func, n *Name) *Name
            
            
            
               
                  NewCommStmt 
                  function
                  
                  #
               
               
               func NewCommStmt(pos src.XPos, comm Node, body []Node) *CommClause
            
            
            
               
                  NewCompLitExpr 
                  function
                  
                  #
               
               
               func NewCompLitExpr(pos src.XPos, op Op, typ *types.Type, list []Node) *CompLitExpr
            
            
            
               
                  NewConstAt 
                  function
                  
                  #
               
               
               NewConstAt returns a new OLITERAL Node associated with symbol s at position pos.
               
               func NewConstAt(pos src.XPos, sym *types.Sym, typ *types.Type, val constant.Value) *Name
            
            
            
               
                  NewConstExpr 
                  function
                  
                  #
               
               
               NewConstExpr returns an OLITERAL representing val, copying the
position and type from orig.
               
               func NewConstExpr(val constant.Value, orig Node) Node
            
            
            
               
                  NewConvExpr 
                  function
                  
                  #
               
               
               func NewConvExpr(pos src.XPos, op Op, typ *types.Type, x Node) *ConvExpr
            
            
            
               
                  NewDecl 
                  function
                  
                  #
               
               
               func NewDecl(pos src.XPos, op Op, x *Name) *Decl
            
            
            
               
                  NewDeclNameAt 
                  function
                  
                  #
               
               
               NewDeclNameAt returns a new Name associated with symbol s at position pos.
The caller is responsible for setting Curfn.
               
               func NewDeclNameAt(pos src.XPos, op Op, sym *types.Sym) *Name
            
            
            
               
                  NewDynamicType 
                  function
                  
                  #
               
               
               func NewDynamicType(pos src.XPos, rtype Node) *DynamicType
            
            
            
               
                  NewDynamicTypeAssertExpr 
                  function
                  
                  #
               
               
               func NewDynamicTypeAssertExpr(pos src.XPos, op Op, x Node, rtype Node) *DynamicTypeAssertExpr
            
            
            
               
                  NewForStmt 
                  function
                  
                  #
               
               
               func NewForStmt(pos src.XPos, init Node, cond Node, post Node, body []Node, distinctVars bool) *ForStmt
            
            
            
               
                  NewFunc 
                  function
                  
                  #
               
               
               NewFunc returns a new Func with the given name and type.
fpos is the position of the "func" token, and npos is the position
of the name identifier.
TODO(mdempsky): I suspect there's no need for separate fpos and
npos.
               
               func NewFunc(fpos src.XPos, npos src.XPos, sym *types.Sym, typ *types.Type) *Func
            
            
            
               
                  NewGoDeferStmt 
                  function
                  
                  #
               
               
               func NewGoDeferStmt(pos src.XPos, op Op, call Node) *GoDeferStmt
            
            
            
               
                  NewHiddenParam 
                  function
                  
                  #
               
               
               NewHiddenParam returns a new hidden parameter for fn with the given
name and type.
               
               func NewHiddenParam(pos src.XPos, fn *Func, sym *types.Sym, typ *types.Type) *Name
            
            
            
               
                  NewIdent 
                  function
                  
                  #
               
               
               func NewIdent(pos src.XPos, sym *types.Sym) *Ident
            
            
            
               
                  NewIfStmt 
                  function
                  
                  #
               
               
               func NewIfStmt(pos src.XPos, cond Node, body []Node, els []Node) *IfStmt
            
            
            
               
                  NewIndexExpr 
                  function
                  
                  #
               
               
               func NewIndexExpr(pos src.XPos, x Node, index Node) *IndexExpr
            
            
            
               
                  NewInlineMarkStmt 
                  function
                  
                  #
               
               
               func NewInlineMarkStmt(pos src.XPos, index int64) *InlineMarkStmt
            
            
            
               
                  NewInlinedCallExpr 
                  function
                  
                  #
               
               
               func NewInlinedCallExpr(pos src.XPos, body []Node, retvars []Node) *InlinedCallExpr
            
            
            
               
                  NewInt 
                  function
                  
                  #
               
               
               NewInt returns an OLITERAL representing v as an untyped integer.
               
               func NewInt(pos src.XPos, v int64) Node
            
            
            
               
                  NewInterfaceSwitchStmt 
                  function
                  
                  #
               
               
               func NewInterfaceSwitchStmt(pos src.XPos, case_ Node, itab Node, runtimeType Node, hash Node, descriptor *obj.LSym) *InterfaceSwitchStmt
            
            
            
               
                  NewJumpTableStmt 
                  function
                  
                  #
               
               
               func NewJumpTableStmt(pos src.XPos, idx Node) *JumpTableStmt
            
            
            
               
                  NewKeyExpr 
                  function
                  
                  #
               
               
               func NewKeyExpr(pos src.XPos, key Node, value Node) *KeyExpr
            
            
            
               
                  NewLabelStmt 
                  function
                  
                  #
               
               
               func NewLabelStmt(pos src.XPos, label *types.Sym) *LabelStmt
            
            
            
               
                  NewLinksymExpr 
                  function
                  
                  #
               
               
               NewLinksymExpr is NewLinksymOffsetExpr, but with offset fixed at 0.
               
               func NewLinksymExpr(pos src.XPos, lsym *obj.LSym, typ *types.Type) *LinksymOffsetExpr
            
            
            
               
                  NewLinksymOffsetExpr 
                  function
                  
                  #
               
               
               func NewLinksymOffsetExpr(pos src.XPos, lsym *obj.LSym, offset int64, typ *types.Type) *LinksymOffsetExpr
            
            
            
               
                  NewLocal 
                  method
                  
                  #
               
               
               NewLocal returns a new function-local variable with the given name and type.
               
               func (fn *Func) NewLocal(pos src.XPos, sym *types.Sym, typ *types.Type) *Name
            
            
            
               
                  NewLogicalExpr 
                  function
                  
                  #
               
               
               func NewLogicalExpr(pos src.XPos, op Op, x Node, y Node) *LogicalExpr
            
            
            
               
                  NewMakeExpr 
                  function
                  
                  #
               
               
               func NewMakeExpr(pos src.XPos, op Op, len Node, cap Node) *MakeExpr
            
            
            
               
                  NewNameAt 
                  function
                  
                  #
               
               
               NewNameAt returns a new ONAME Node associated with symbol s at position pos.
The caller is responsible for setting Curfn.
               
               func NewNameAt(pos src.XPos, sym *types.Sym, typ *types.Type) *Name
            
            
            
               
                  NewNameOffsetExpr 
                  function
                  
                  #
               
               
               NewNameOffsetExpr is NewLinksymOffsetExpr, but taking a *Name
representing a global variable instead of an *obj.LSym directly.
               
               func NewNameOffsetExpr(pos src.XPos, name *Name, offset int64, typ *types.Type) *LinksymOffsetExpr
            
            
            
               
                  NewNilExpr 
                  function
                  
                  #
               
               
               func NewNilExpr(pos src.XPos, typ *types.Type) *NilExpr
            
            
            
               
                  NewOne 
                  function
                  
                  #
               
               
               NewOne returns an OLITERAL representing 1 with the given type.
               
               func NewOne(pos src.XPos, typ *types.Type) Node
            
            
            
               
                  NewParenExpr 
                  function
                  
                  #
               
               
               func NewParenExpr(pos src.XPos, x Node) *ParenExpr
            
            
            
               
                  NewRangeStmt 
                  function
                  
                  #
               
               
               func NewRangeStmt(pos src.XPos, key Node, value Node, x Node, body []Node, distinctVars bool) *RangeStmt
            
            
            
               
                  NewResultExpr 
                  function
                  
                  #
               
               
               func NewResultExpr(pos src.XPos, typ *types.Type, index int64) *ResultExpr
            
            
            
               
                  NewReturnStmt 
                  function
                  
                  #
               
               
               func NewReturnStmt(pos src.XPos, results []Node) *ReturnStmt
            
            
            
               
                  NewSelectStmt 
                  function
                  
                  #
               
               
               func NewSelectStmt(pos src.XPos, cases []*CommClause) *SelectStmt
            
            
            
               
                  NewSelectorExpr 
                  function
                  
                  #
               
               
               func NewSelectorExpr(pos src.XPos, op Op, x Node, sel *types.Sym) *SelectorExpr
            
            
            
               
                  NewSendStmt 
                  function
                  
                  #
               
               
               func NewSendStmt(pos src.XPos, ch Node, value Node) *SendStmt
            
            
            
               
                  NewSliceExpr 
                  function
                  
                  #
               
               
               func NewSliceExpr(pos src.XPos, op Op, x Node, low Node, high Node, max Node) *SliceExpr
            
            
            
            
            
               
                  NewStarExpr 
                  function
                  
                  #
               
               
               func NewStarExpr(pos src.XPos, x Node) *StarExpr
            
            
            
               
                  NewString 
                  function
                  
                  #
               
               
               NewString returns an OLITERAL representing s as an untyped string.
               
               func NewString(pos src.XPos, s string) Node
            
            
            
            
            
               
                  NewStructKeyExpr 
                  function
                  
                  #
               
               
               func NewStructKeyExpr(pos src.XPos, field *types.Field, value Node) *StructKeyExpr
            
            
            
               
                  NewSwitchStmt 
                  function
                  
                  #
               
               
               func NewSwitchStmt(pos src.XPos, tag Node, cases []*CaseClause) *SwitchStmt
            
            
            
               
                  NewTailCallStmt 
                  function
                  
                  #
               
               
               func NewTailCallStmt(pos src.XPos, call *CallExpr) *TailCallStmt
            
            
            
               
                  NewTypeAssertExpr 
                  function
                  
                  #
               
               
               func NewTypeAssertExpr(pos src.XPos, x Node, typ *types.Type) *TypeAssertExpr
            
            
            
               
                  NewTypeSwitchGuard 
                  function
                  
                  #
               
               
               func NewTypeSwitchGuard(pos src.XPos, tag *Ident, x Node) *TypeSwitchGuard
            
            
            
               
                  NewUintptr 
                  function
                  
                  #
               
               
               NewUintptr returns an OLITERAL representing v as a uintptr.
               
               func NewUintptr(pos src.XPos, v int64) Node
            
            
            
               
                  NewUnaryExpr 
                  function
                  
                  #
               
               
               func NewUnaryExpr(pos src.XPos, op Op, x Node) *UnaryExpr
            
            
            
               
                  NewZero 
                  function
                  
                  #
               
               
               NewZero returns a zero value of the given type.
               
               func NewZero(pos src.XPos, typ *types.Type) Node
            
            
            
               
                  NilCheckDisabled 
                  method
                  
                  #
               
               
               func (f *Func) NilCheckDisabled() bool
            
            
            
               
                  NonMergeable 
                  method
                  
                  #
               
               
               func (n *Name) NonMergeable() bool
            
            
            
               
                  NonNil 
                  method
                  
                  #
               
               
               func (n *miniNode) NonNil() bool
            
            
            
               
                  NonNil 
                  method
                  
                  #
               
               
               func (n *miniExpr) NonNil() bool
            
            
            
               
                  Offset 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) Offset() int64
            
            
            
               
                  Offset 
                  method
                  
                  #
               
               
               func (n *InlineMarkStmt) Offset() int64
            
            
            
               
                  OnStack 
                  method
                  
                  #
               
               
               OnStack reports whether variable n may reside on the stack.
               
               func (n *Name) OnStack() bool
            
            
            
               
                  Op 
                  method
                  
                  #
               
               
               op can be read, but not written.
An embedding implementation can provide a SetOp if desired.
(The panicking SetOp is with the other panics below.)
               
               func (n *miniNode) Op() Op
            
            
            
               
                  OpenCodedDeferDisallowed 
                  method
                  
                  #
               
               
               func (f *Func) OpenCodedDeferDisallowed() bool
            
            
            
               
                  OpenDeferSlot 
                  method
                  
                  #
               
               
               func (n *Name) OpenDeferSlot() bool
            
            
            
               
                  OuterValue 
                  function
                  
                  #
               
               
               what's the outer value that a write to n affects?
outer value means containing struct or array.
               
               func OuterValue(n Node) Node
            
            
            
               
                  ParamNames 
                  function
                  
                  #
               
               
               func ParamNames(ft *types.Type) []Node
            
            
            
               
                  ParseLinkFuncName 
                  function
                  
                  #
               
               
               ParseLinkFuncName parsers a symbol name (as returned from LinkFuncName) back
to the package path and local symbol name.
               
               func ParseLinkFuncName(name string) (pkg string, sym string, err error)
            
            
            
               
                  PkgFuncName 
                  function
                  
                  #
               
               
               PkgFuncName returns the name of the function referenced by f, with package
prepended.
This differs from the compiler's internal convention where local functions
lack a package. This is primarily useful when the ultimate consumer of this
is a human looking at message.
               
               func PkgFuncName(f *Func) string
            
            
            
               
                  PopLeft 
                  method
                  
                  #
               
               
               PopLeft pops a Name from the left of the queue. It panics if q is
empty.
               
               func (q *NameQueue) PopLeft() *Name
            
            
            
               
                  Pos 
                  method
                  
                  #
               
               
               func (n *miniNode) Pos() src.XPos
            
            
            
               
                  Pragma 
                  method
                  
                  #
               
               
               Pragma returns the PragmaFlag for p, which must be for an OTYPE.
               
               func (n *Name) Pragma() PragmaFlag
            
            
            
               
                  Prepend 
                  method
                  
                  #
               
               
               Prepend prepends entries to Nodes.
If a slice is passed in, this will take ownership of it.
               
               func (n *Nodes) Prepend(a ...Node)
            
            
            
               
                  PtrInit 
                  method
                  
                  #
               
               
               func (n *miniStmt) PtrInit() *Nodes
            
            
            
               
                  PtrInit 
                  method
                  
                  #
               
               
               func (n *miniExpr) PtrInit() *Nodes
            
            
            
               
                  PushRight 
                  method
                  
                  #
               
               
               PushRight appends n to the right of the queue.
               
               func (q *NameQueue) PushRight(n *Name)
            
            
            
               
                  Readonly 
                  method
                  
                  #
               
               
               func (n *Name) Readonly() bool
            
            
            
               
                  Reassigned 
                  method
                  
                  #
               
               
               Reassigned method has the same semantics as the ir package function
of the same name; see comments on [Reassigned] for more info.
               
               func (ro *ReassignOracle) Reassigned(n *Name) bool
            
            
            
               
                  Reassigned 
                  function
                  
                  #
               
               
               Reassigned takes an ONAME node, walks the function in which it is
defined, and returns a boolean indicating whether the name has any
assignments other than its declaration.
NB: global variables are always considered to be re-assigned.
TODO: handle initial declaration not including an assignment and
followed by a single assignment?
NOTE: any changes made here should also be made in the corresponding
code in the ReassignOracle.Init method.
               
               func Reassigned(name *Name) bool
            
            
            
               
                  RecordFrameOffset 
                  method
                  
                  #
               
               
               RecordFrameOffset records the frame offset for the name.
It is used by package types when laying out function arguments.
               
               func (n *Name) RecordFrameOffset(offset int64)
            
            
            
               
                  SameSafeExpr 
                  function
                  
                  #
               
               
               SameSafeExpr checks whether it is safe to reuse one of l and r
instead of computing both. SameSafeExpr assumes that l and r are
used in the same statement or expression. In order for it to be
safe to reuse l or r, they must:
- be the same expression
- not have side-effects (no function calls, no channel ops);
however, panics are ok
- not cause inappropriate aliasing; e.g. two string to []byte
conversions, must result in two distinct slices
The handling of OINDEXMAP is subtle. OINDEXMAP can occur both
as an lvalue (map assignment) and an rvalue (map access). This is
currently OK, since the only place SameSafeExpr gets used on an
lvalue expression is for OSLICE and OAPPEND optimizations, and it
is correct in those settings.
               
               func SameSafeExpr(l Node, r Node) bool
            
            
            
               
                  SameSource 
                  function
                  
                  #
               
               
               SameSource reports whether two nodes refer to the same source
element.
It exists to help incrementally migrate the compiler towards
allowing the introduction of IdentExpr (#42990). Once we have
IdentExpr, it will no longer be safe to directly compare Node
values to tell if they refer to the same Name. Instead, code will
need to explicitly get references to the underlying Name object(s),
and compare those instead.
It will still be safe to compare Nodes directly for checking if two
nodes are syntactically the same. The SameSource function exists to
indicate code that intentionally compares Nodes for syntactic
equality as opposed to code that has yet to be updated in
preparation for IdentExpr.
               
               func SameSource(n1 Node, n2 Node) bool
            
            
            
               
                  SetABIWrapper 
                  method
                  
                  #
               
               
               func (f *Func) SetABIWrapper(b bool)
            
            
            
               
                  SetAddrtaken 
                  method
                  
                  #
               
               
               func (n *Name) SetAddrtaken(b bool)
            
            
            
               
                  SetAlias 
                  method
                  
                  #
               
               
               SetAlias sets whether p, which must be for an OTYPE, is a type alias.
               
               func (n *Name) SetAlias(alias bool)
            
            
            
               
                  SetAutoTemp 
                  method
                  
                  #
               
               
               func (n *Name) SetAutoTemp(b bool)
            
            
            
               
                  SetBounded 
                  method
                  
                  #
               
               
               func (n *miniExpr) SetBounded(b bool)
            
            
            
               
                  SetByval 
                  method
                  
                  #
               
               
               func (n *Name) SetByval(b bool)
            
            
            
               
                  SetCheckPtr 
                  method
                  
                  #
               
               
               func (n *ConvExpr) SetCheckPtr(b bool)
            
            
            
               
                  SetClosureResultsLost 
                  method
                  
                  #
               
               
               func (f *Func) SetClosureResultsLost(b bool)
            
            
            
               
                  SetCoverageAuxVar 
                  method
                  
                  #
               
               
               func (n *Name) SetCoverageAuxVar(b bool)
            
            
            
               
                  SetDupok 
                  method
                  
                  #
               
               
               func (f *Func) SetDupok(b bool)
            
            
            
               
                  SetEsc 
                  method
                  
                  #
               
               
               func (n *miniNode) SetEsc(x uint16)
            
            
            
               
                  SetFrameOffset 
                  method
                  
                  #
               
               
               func (n *Name) SetFrameOffset(x int64)
            
            
            
               
                  SetFunc 
                  method
                  
                  #
               
               
               func (n *Name) SetFunc(x *Func)
            
            
            
               
                  SetHasDefer 
                  method
                  
                  #
               
               
               func (f *Func) SetHasDefer(b bool)
            
            
            
               
                  SetImplicit 
                  method
                  
                  #
               
               
               func (n *AddrExpr) SetImplicit(b bool)
            
            
            
               
                  SetImplicit 
                  method
                  
                  #
               
               
               func (n *CompLitExpr) SetImplicit(b bool)
            
            
            
               
                  SetImplicit 
                  method
                  
                  #
               
               
               func (n *ConvExpr) SetImplicit(b bool)
            
            
            
               
                  SetImplicit 
                  method
                  
                  #
               
               
               func (n *ParenExpr) SetImplicit(b bool)
            
            
            
               
                  SetImplicit 
                  method
                  
                  #
               
               
               func (n *StarExpr) SetImplicit(b bool)
            
            
            
               
                  SetImplicit 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) SetImplicit(b bool)
            
            
            
               
                  SetInit 
                  method
                  
                  #
               
               
               func (n *miniExpr) SetInit(x Nodes)
            
            
            
               
                  SetInit 
                  method
                  
                  #
               
               
               func (n *miniStmt) SetInit(x Nodes)
            
            
            
               
                  SetInlFormal 
                  method
                  
                  #
               
               
               func (n *Name) SetInlFormal(b bool)
            
            
            
               
                  SetInlLocal 
                  method
                  
                  #
               
               
               func (n *Name) SetInlLocal(b bool)
            
            
            
               
                  SetInlinabilityChecked 
                  method
                  
                  #
               
               
               func (f *Func) SetInlinabilityChecked(b bool)
            
            
            
               
                  SetIsClosureVar 
                  method
                  
                  #
               
               
               func (n *Name) SetIsClosureVar(b bool)
            
            
            
               
                  SetIsOutputParamHeapAddr 
                  method
                  
                  #
               
               
               func (n *Name) SetIsOutputParamHeapAddr(b bool)
            
            
            
               
                  SetIsOutputParamInRegisters 
                  method
                  
                  #
               
               
               func (n *Name) SetIsOutputParamInRegisters(b bool)
            
            
            
               
                  SetIsPackageInit 
                  method
                  
                  #
               
               
               func (f *Func) SetIsPackageInit(b bool)
            
            
            
               
                  SetLibfuzzer8BitCounter 
                  method
                  
                  #
               
               
               func (n *Name) SetLibfuzzer8BitCounter(b bool)
            
            
            
               
                  SetNeedctxt 
                  method
                  
                  #
               
               
               func (f *Func) SetNeedctxt(b bool)
            
            
            
               
                  SetNeedzero 
                  method
                  
                  #
               
               
               func (n *Name) SetNeedzero(b bool)
            
            
            
               
                  SetNeverReturns 
                  method
                  
                  #
               
               
               func (f *Func) SetNeverReturns(b bool)
            
            
            
               
                  SetNilCheckDisabled 
                  method
                  
                  #
               
               
               func (f *Func) SetNilCheckDisabled(b bool)
            
            
            
               
                  SetNonMergeable 
                  method
                  
                  #
               
               
               func (n *Name) SetNonMergeable(b bool)
            
            
            
               
                  SetOffset 
                  method
                  
                  #
               
               
               func (n *InlineMarkStmt) SetOffset(x int64)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *AssignStmt) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *TypeAssertExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *SliceExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *BinaryExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *CallExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *IndexExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *AssignListStmt) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *UnaryExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *CompLitExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *MakeExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *AddrExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *DynamicTypeAssertExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *LogicalExpr) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *BranchStmt) SetOp(op Op)
            
            
            
               
                  SetOp 
                  method
                  
                  #
               
               
               func (n *ConvExpr) SetOp(op Op)
            
            
            
               
                  SetOpenCodedDeferDisallowed 
                  method
                  
                  #
               
               
               func (f *Func) SetOpenCodedDeferDisallowed(b bool)
            
            
            
               
                  SetOpenDeferSlot 
                  method
                  
                  #
               
               
               func (n *Name) SetOpenDeferSlot(b bool)
            
            
            
               
                  SetPos 
                  function
                  
                  #
               
               
               func SetPos(n Node) src.XPos
            
            
            
               
                  SetPos 
                  method
                  
                  #
               
               
               func (n *miniNode) SetPos(x src.XPos)
            
            
            
               
                  SetPragma 
                  method
                  
                  #
               
               
               SetPragma sets the PragmaFlag for p, which must be for an OTYPE.
               
               func (n *Name) SetPragma(flag PragmaFlag)
            
            
            
               
                  SetSubOp 
                  method
                  
                  #
               
               
               func (n *Name) SetSubOp(x Op)
            
            
            
               
                  SetSym 
                  method
                  
                  #
               
               
               func (n *Name) SetSym(x *types.Sym)
            
            
            
               
                  SetTransient 
                  method
                  
                  #
               
               
               func (n *miniExpr) SetTransient(b bool)
            
            
            
               
                  SetType 
                  method
                  
                  #
               
               
               func (n *miniExpr) SetType(x *types.Type)
            
            
            
               
                  SetType 
                  method
                  
                  #
               
               
               func (n *miniNode) SetType(*types.Type)
            
            
            
               
                  SetTypecheck 
                  method
                  
                  #
               
               
               func (n *miniNode) SetTypecheck(x uint8)
            
            
            
               
                  SetUsed 
                  method
                  
                  #
               
               
               func (n *Name) SetUsed(b bool)
            
            
            
               
                  SetVal 
                  method
                  
                  #
               
               
               func (n *BasicLit) SetVal(val constant.Value)
            
            
            
               
                  SetVal 
                  method
                  
                  #
               
               
               func (n *miniNode) SetVal(v constant.Value)
            
            
            
               
                  SetVal 
                  method
                  
                  #
               
               
               SetVal sets the constant.Value for the node.
               
               func (n *Name) SetVal(v constant.Value)
            
            
            
               
                  SetWBPos 
                  method
                  
                  #
               
               
               func (f *Func) SetWBPos(pos src.XPos)
            
            
            
               
                  SetWalked 
                  method
                  
                  #
               
               
               func (n *miniNode) SetWalked(x bool)
            
            
            
               
                  SetWrapper 
                  method
                  
                  #
               
               
               func (f *Func) SetWrapper(b bool)
            
            
            
               
                  ShouldAsanCheckPtr 
                  function
                  
                  #
               
               
               ShouldAsanCheckPtr reports whether pointer checking should be enabled for
function fn when -asan is enabled.
               
               func ShouldAsanCheckPtr(fn *Func) bool
            
            
            
               
                  ShouldCheckPtr 
                  function
                  
                  #
               
               
               ShouldCheckPtr reports whether pointer checking should be enabled for
function fn at a given level. See debugHelpFooter for defined
levels.
               
               func ShouldCheckPtr(fn *Func, level int) bool
            
            
            
               
                  SingleResult 
                  method
                  
                  #
               
               
               func (n *InlinedCallExpr) SingleResult() Node
            
            
            
               
                  StaticCalleeName 
                  function
                  
                  #
               
               
               StaticCalleeName returns the ONAME/PFUNC for n, if known.
               
               func StaticCalleeName(n Node) *Name
            
            
            
               
                  StaticValue 
                  function
                  
                  #
               
               
               StaticValue analyzes n to find the earliest expression that always
evaluates to the same value as n, which might be from an enclosing
function.
For example, given:
var x int = g()
func() {
y := x
*p = int(y)
}
calling StaticValue on the "int(y)" expression returns the outer
"g()" expression.
               
               func StaticValue(n Node) Node
            
            
            
               
                  StaticValue 
                  method
                  
                  #
               
               
               StaticValue method has the same semantics as the ir package function
of the same name; see comments on [StaticValue].
               
               func (ro *ReassignOracle) StaticValue(n Node) Node
            
            
            
               
                  StmtWithInit 
                  function
                  
                  #
               
               
               StmtWithInit reports whether op is a statement with an explicit init list.
               
               func StmtWithInit(op Op) bool
            
            
            
               
                  String 
                  method
                  
                  #
               
               
               func (i Class) String() string
            
            
            
               
                  String 
                  method
                  
                  #
               
               
               func (i Op) String() string
            
            
            
               
                  StringVal 
                  function
                  
                  #
               
               
               StringVal returns the value of a literal string Node as a string.
n must be a string constant.
               
               func StringVal(n Node) string
            
            
            
               
                  SubOp 
                  method
                  
                  #
               
               
               func (n *Name) SubOp() Op
            
            
            
               
                  Sym 
                  method
                  
                  #
               
               
               func (f *Func) Sym() *types.Sym
            
            
            
               
                  Sym 
                  method
                  
                  #
               
               
               func (n *BranchStmt) Sym() *types.Sym
            
            
            
               
                  Sym 
                  method
                  
                  #
               
               
               func (n *Ident) Sym() *types.Sym
            
            
            
               
                  Sym 
                  method
                  
                  #
               
               
               func (n *miniNode) Sym() *types.Sym
            
            
            
               
                  Sym 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) Sym() *types.Sym
            
            
            
               
                  Sym 
                  method
                  
                  #
               
               
               func (n *Name) Sym() *types.Sym
            
            
            
               
                  Sym 
                  method
                  
                  #
               
               
               func (n *typeNode) Sym() *types.Sym
            
            
            
               
                  Sym 
                  method
                  
                  #
               
               
               func (n *StructKeyExpr) Sym() *types.Sym
            
            
            
               
                  Sym 
                  method
                  
                  #
               
               
               func (n *LabelStmt) Sym() *types.Sym
            
            
            
               
                  Take 
                  method
                  
                  #
               
               
               Take clears n, returning its former contents.
               
               func (n *Nodes) Take() []Node
            
            
            
               
                  TakeInit 
                  function
                  
                  #
               
               
               func TakeInit(n Node) Nodes
            
            
            
               
                  ToNodes 
                  function
                  
                  #
               
               
               ToNodes returns s as a slice of Nodes.
               
               func ToNodes(s []T) Nodes
            
            
            
               
                  ToStatic 
                  method
                  
                  #
               
               
               ToStatic returns static type of dt if it is actually static.
               
               func (dt *DynamicType) ToStatic() Node
            
            
            
               
                  Transient 
                  method
                  
                  #
               
               
               func (n *miniExpr) Transient() bool
            
            
            
               
                  Type 
                  method
                  
                  #
               
               
               func (n *miniExpr) Type() *types.Type
            
            
            
               
                  Type 
                  method
                  
                  #
               
               
               func (f *Func) Type() *types.Type
            
            
            
               
                  Type 
                  method
                  
                  #
               
               
               func (n *typeNode) Type() *types.Type
            
            
            
               
                  Type 
                  method
                  
                  #
               
               
               func (n *miniNode) Type() *types.Type
            
            
            
               
                  TypeNode 
                  function
                  
                  #
               
               
               TypeNode returns the Node representing the type t.
               
               func TypeNode(t *types.Type) Node
            
            
            
               
                  Typecheck 
                  method
                  
                  #
               
               
               func (n *miniNode) Typecheck() uint8
            
            
            
               
                  Uint64Val 
                  function
                  
                  #
               
               
               Uint64Val returns n as a uint64.
n must be an integer or rune constant.
               
               func Uint64Val(n Node) uint64
            
            
            
               
                  Used 
                  method
                  
                  #
               
               
               func (n *Name) Used() bool
            
            
            
               
                  Uses 
                  function
                  
                  #
               
               
               Uses reports whether expression x is a (direct) use of the given
variable.
               
               func Uses(x Node, v *Name) bool
            
            
            
               
                  Val 
                  method
                  
                  #
               
               
               func (n *miniNode) Val() constant.Value
            
            
            
               
                  Val 
                  method
                  
                  #
               
               
               Val returns the constant.Value for the node.
               
               func (n *Name) Val() constant.Value
            
            
            
               
                  Val 
                  method
                  
                  #
               
               
               func (n *BasicLit) Val() constant.Value
            
            
            
               
                  ValidTypeForConst 
                  function
                  
                  #
               
               
               func ValidTypeForConst(t *types.Type, v constant.Value) bool
            
            
            
               
                  Visit 
                  function
                  
                  #
               
               
               Visit visits each non-nil node x in the IR tree rooted at n
in a depth-first preorder traversal, calling visit on each node visited.
               
               func Visit(n Node, visit func(Node))
            
            
            
               
                  VisitFuncAndClosures 
                  function
                  
                  #
               
               
               VisitFuncAndClosures calls visit on each non-nil node in fn.Body,
including any nested closure bodies.
               
               func VisitFuncAndClosures(fn *Func, visit func(n Node))
            
            
            
               
                  VisitFuncsBottomUp 
                  function
                  
                  #
               
               
               VisitFuncsBottomUp invokes analyze on the ODCLFUNC nodes listed in list.
It calls analyze with successive groups of functions, working from
the bottom of the call graph upward. Each time analyze is called with
a list of functions, every function on that list only calls other functions
on the list or functions that have been passed in previous invocations of
analyze. Closures appear in the same list as their outer functions.
The lists are as short as possible while preserving those requirements.
(In a typical program, many invocations of analyze will be passed just
a single function.) The boolean argument 'recursive' passed to analyze
specifies whether the functions on the list are mutually recursive.
If recursive is false, the list consists of only a single function and its closures.
If recursive is true, the list may still contain only a single function,
if that function is itself recursive.
               
               func VisitFuncsBottomUp(list []*Func, analyze func(list []*Func, recursive bool))
            
            
            
               
                  VisitList 
                  function
                  
                  #
               
               
               VisitList calls Visit(x, visit) for each node x in the list.
               
               func VisitList(list Nodes, visit func(Node))
            
            
            
               
                  Walked 
                  method
                  
                  #
               
               
               func (n *miniNode) Walked() bool
            
            
            
               
                  WithFunc 
                  function
                  
                  #
               
               
               WithFunc invokes do with CurFunc and base.Pos set to curfn and
curfn.Pos(), respectively, and then restores their previous values
before returning.
               
               func WithFunc(curfn *Func, do func())
            
            
            
               
                  Wrapper 
                  method
                  
                  #
               
               
               func (f *Func) Wrapper() bool
            
            
            
               
                  Write 
                  method
                  
                  #
               
               
               func (p *dumper) Write(data []byte) (n int, err error)
            
            
            
               
                  _ 
                  function
                  
                  #
               
               
               func _()
            
            
            
               
                  _ 
                  function
                  
                  #
               
               
               func _()
            
            
            
               
                  addr 
                  method
                  
                  #
               
               
               addr returns the (hexadecimal) address string of the object
represented by x (or "?" if x is not addressable), with the
common prefix between this and the prior address replaced by
"0x…" to make it easier to visually match addresses.
               
               func (p *dumper) addr(x reflect.Value) string
            
            
            
               
                  checkReassignedResult 
                  function
                  
                  #
               
               
               checkReassignedResult compares the result from ReassignOracle.Reassigned
with the corresponding result from ir.Reassigned to make sure they agree.
This method is called only when turned on via build tag.
               
               func checkReassignedResult(n *Name, newres bool)
            
            
            
               
                  checkStaticValueResult 
                  function
                  
                  #
               
               
               checkStaticValueResult compares the result from ReassignOracle.StaticValue
with the corresponding result from ir.StaticValue to make sure they agree.
This method is called only when turned on via build tag.
               
               func checkStaticValueResult(n Node, newres Node)
            
            
            
               
                  closureName 
                  function
                  
                  #
               
               
               closureName generates a new unique name for a closure within outerfn at pos.
               
               func closureName(outerfn *Func, pos src.XPos, why Op) *types.Sym
            
            
            
               
                  commonPrefixLen 
                  function
                  
                  #
               
               
               func commonPrefixLen(a string, b string) (i int)
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *SliceExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *InlinedCallExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *NilExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *AddStringExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *RangeStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *AddrExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *MakeExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *TypeAssertExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *LogicalExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *AssignListStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *ResultExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *AssignOpStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *LinksymOffsetExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *TypeSwitchGuard) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *ReturnStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *AssignStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *LabelStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *BasicLit) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *KeyExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *UnaryExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *SelectStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *BinaryExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *JumpTableStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *BlockStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *InterfaceSwitchStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *typeNode) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *ParenExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *BranchStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *DynamicTypeAssertExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *ForStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *DynamicType) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *CallExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *Func) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *SendStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *TailCallStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *Decl) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *Name) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *CaseClause) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *StringHeaderExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *InlineMarkStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *ClosureExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *SwitchStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *IndexExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *CommClause) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *IfStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *CompLitExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *SliceHeaderExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *StructKeyExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *Ident) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *ConvExpr) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *GoDeferStmt) copy() Node
            
            
            
               
                  copy 
                  method
                  
                  #
               
               
               func (n *StarExpr) copy() Node
            
            
            
               
                  copyCaseClauses 
                  function
                  
                  #
               
               
               func copyCaseClauses(list []*CaseClause) []*CaseClause
            
            
            
               
                  copyCommClauses 
                  function
                  
                  #
               
               
               func copyCommClauses(list []*CommClause) []*CommClause
            
            
            
               
                  copyNames 
                  function
                  
                  #
               
               
               func copyNames(list []*Name) []*Name
            
            
            
               
                  copyNodes 
                  function
                  
                  #
               
               
               func copyNodes(list []Node) []Node
            
            
            
               
                  doCaseClauses 
                  function
                  
                  #
               
               
               func doCaseClauses(list []*CaseClause, do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *BlockStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *DynamicTypeAssertExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *DynamicType) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *Func) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *Decl) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *ForStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *StarExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *StringHeaderExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *ConvExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *GoDeferStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *CompLitExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *SliceHeaderExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *StructKeyExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *Ident) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *CommClause) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *IfStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *SliceExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *ClosureExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *IndexExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *CaseClause) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *Name) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *SendStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *CallExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *InlineMarkStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *BranchStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *InlinedCallExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *typeNode) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *SwitchStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *InterfaceSwitchStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *BinaryExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *SelectStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *UnaryExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *JumpTableStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *BasicLit) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *KeyExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *ReturnStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *AssignStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *TypeSwitchGuard) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *LabelStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *AssignOpStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *LinksymOffsetExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *ResultExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *AssignListStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *TypeAssertExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *LogicalExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *AddrExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *RangeStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *AddStringExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *MakeExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *TailCallStmt) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *NilExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildren 
                  method
                  
                  #
               
               
               func (n *ParenExpr) doChildren(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SendStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *CompLitExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SliceExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *NilExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ParenExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *IfStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SliceHeaderExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *GoDeferStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *TailCallStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *MakeExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *AddStringExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *RangeStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *AddrExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *TypeAssertExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *LogicalExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *AssignListStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *AssignOpStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *TypeSwitchGuard) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *AssignStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *LinksymOffsetExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ResultExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SwitchStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *BasicLit) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *UnaryExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *LabelStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *BinaryExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *typeNode) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *BlockStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *BranchStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *KeyExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ReturnStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ForStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *StarExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *CallExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *JumpTableStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *Name) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SelectStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *IndexExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *Func) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *InterfaceSwitchStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *CaseClause) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ClosureExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *StructKeyExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *CommClause) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *InlinedCallExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *Ident) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *StringHeaderExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ConvExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *InlineMarkStmt) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *Decl) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *DynamicType) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *DynamicTypeAssertExpr) doChildrenWithHidden(do func(Node) bool) bool
            
            
            
               
                  doCommClauses 
                  function
                  
                  #
               
               
               func doCommClauses(list []*CommClause, do func(Node) bool) bool
            
            
            
               
                  doNames 
                  function
                  
                  #
               
               
               func doNames(list []*Name, do func(Node) bool) bool
            
            
            
               
                  doNodes 
                  function
                  
                  #
               
               
               func doNodes(list []Node, do func(Node) bool) bool
            
            
            
               
                  dump 
                  method
                  
                  #
               
               
               dump prints the contents of x.
               
               func (p *dumper) dump(x reflect.Value, depth int)
            
            
            
               
                  dumpNode 
                  function
                  
                  #
               
               
               func dumpNode(w io.Writer, n Node, depth int)
            
            
            
            
            
               
                  dumpNodes 
                  function
                  
                  #
               
               
               func dumpNodes(w io.Writer, list Nodes, depth int)
            
            
            
               
                  editCaseClauses 
                  function
                  
                  #
               
               
               func editCaseClauses(list []*CaseClause, edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *SendStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *StructKeyExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *NilExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *Ident) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *SliceExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *ParenExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *IfStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *MakeExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *GoDeferStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *TailCallStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *SliceHeaderExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *AddStringExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *AddrExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *LogicalExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *ForStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *TypeAssertExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *RangeStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *AssignListStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *SwitchStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *AssignOpStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *IndexExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *Func) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *TypeSwitchGuard) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *LinksymOffsetExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *AssignStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *DynamicTypeAssertExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *ResultExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *StarExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *BasicLit) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *LabelStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *DynamicType) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *UnaryExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *BinaryExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *BlockStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *typeNode) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *Decl) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *KeyExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *BranchStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *ReturnStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *JumpTableStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *ConvExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *InlineMarkStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *Name) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *StringHeaderExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *CallExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *CompLitExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *InterfaceSwitchStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *SelectStmt) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *CaseClause) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *CommClause) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *InlinedCallExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildren 
                  method
                  
                  #
               
               
               func (n *ClosureExpr) editChildren(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *InterfaceSwitchStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *IndexExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SliceExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *MakeExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *GoDeferStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *InlinedCallExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SelectStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *StructKeyExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *IfStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *CaseClause) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *CommClause) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ParenExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *StringHeaderExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SliceHeaderExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *CallExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *CompLitExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *AddStringExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *Ident) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *TailCallStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ReturnStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *InlineMarkStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *Name) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ConvExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *JumpTableStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *StarExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *BranchStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SwitchStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SelectorExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *LogicalExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *typeNode) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *Decl) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *BlockStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ForStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *KeyExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *AddrExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *UnaryExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *BinaryExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *AssignListStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ResultExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *NilExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *DynamicType) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *BasicLit) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *TypeAssertExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *LabelStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *ClosureExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *TypeSwitchGuard) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *AssignStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *DynamicTypeAssertExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *RangeStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *Func) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *LinksymOffsetExpr) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *AssignOpStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editChildrenWithHidden 
                  method
                  
                  #
               
               
               func (n *SendStmt) editChildrenWithHidden(edit func(Node) Node)
            
            
            
               
                  editCommClauses 
                  function
                  
                  #
               
               
               func editCommClauses(list []*CommClause, edit func(Node) Node)
            
            
            
               
                  editNames 
                  function
                  
                  #
               
               
               func editNames(list []*Name, edit func(Node) Node)
            
            
            
               
                  editNodes 
                  function
                  
                  #
               
               
               func editNodes(list []Node, edit func(Node) Node)
            
            
            
               
                  ellipsisIf 
                  function
                  
                  #
               
               
               func ellipsisIf(b bool) string
            
            
            
               
                  escapedImportPathOK 
                  function
                  
                  #
               
               
               func escapedImportPathOK(r rune) bool
            
            
            
               
                  exprFmt 
                  function
                  
                  #
               
               
               func exprFmt(n Node, s fmt.State, prec int)
            
            
            
               
                  fmtFullPos 
                  function
                  
                  #
               
               
               fmtFullPos returns a verbose dump for pos p, including inlines.
               
               func fmtFullPos(p src.XPos) string
            
            
            
               
                  fmtNode 
                  function
                  
                  #
               
               
               fmtNode implements formatting for a Node n.
Every Node implementation must define a Format method that calls fmtNode.
The valid formats are:
%v	Go syntax
%L	Go syntax followed by " (type T)" if type is known.
%+v	Debug syntax, as in Dump.
               
               func fmtNode(n Node, s fmt.State, verb rune)
            
            
            
               
                  get2 
                  method
                  
                  #
               
               
               func (f bitset8) get2(shift uint8) uint8
            
            
            
               
                  indent 
                  function
                  
                  #
               
               
               indent prints indentation to w.
               
               func indent(w io.Writer, depth int)
            
            
            
               
                  isExpr 
                  method
                  
                  #
               
               
               func (*miniExpr) isExpr()
            
            
            
               
                  isExpr 
                  method
                  
                  #
               
               
               func (n *Name) isExpr()
            
            
            
               
                  isStmt 
                  method
                  
                  #
               
               
               func (*miniStmt) isStmt()
            
            
            
               
                  isStmt 
                  method
                  
                  #
               
               
               func (f *Func) isStmt()
            
            
            
               
                  isStmt 
                  method
                  
                  #
               
               
               func (*CallExpr) isStmt()
            
            
            
               
                  isStmt 
                  method
                  
                  #
               
               
               func (*Decl) isStmt()
            
            
            
               
                  modPathOK 
                  function
                  
                  #
               
               
               Borrowed from x/mod.
               
               func modPathOK(r rune) bool
            
            
            
               
                  newNameAt 
                  function
                  
                  #
               
               
               newNameAt is like NewNameAt but allows sym == nil.
               
               func newNameAt(pos src.XPos, op Op, sym *types.Sym) *Name
            
            
            
               
                  newTypeNode 
                  function
                  
                  #
               
               
               func newTypeNode(typ *types.Type) *typeNode
            
            
            
               
                  no 
                  method
                  
                  #
               
               
               func (n *miniNode) no(name string) string
            
            
            
               
                  posOr 
                  method
                  
                  #
               
               
               posOr returns pos if known, or else n.pos.
For use in DeepCopy.
               
               func (n *miniNode) posOr(pos src.XPos) src.XPos
            
            
            
               
                  printf 
                  method
                  
                  #
               
               
               printf is a convenience wrapper.
               
               func (p *dumper) printf(format string, args ...interface{})
            
            
            
               
                  set 
                  method
                  
                  #
               
               
               func (f *bitset16) set(mask uint16, b bool)
            
            
            
               
                  set 
                  method
                  
                  #
               
               
               func (f *bitset8) set(mask uint8, b bool)
            
            
            
               
                  set2 
                  method
                  
                  #
               
               
               set2 sets two bits in f using the bottom two bits of b.
               
               func (f *bitset8) set2(shift uint8, b uint8)
            
            
            
               
                  setReadonly 
                  method
                  
                  #
               
               
               func (n *Name) setReadonly(b bool)
            
            
            
               
                  setupTextLSym 
                  function
                  
                  #
               
               
               setupTextLSym initializes the LSym for a with-body text symbol.
               
               func setupTextLSym(f *Func, flag int)
            
            
            
               
                  splitPkg 
                  function
                  
                  #
               
               
               splitPkg splits the full linker symbol name into package and local symbol
name.
               
               func splitPkg(name string) (pkgpath string, sym string)
            
            
            
               
                  splitType 
                  function
                  
                  #
               
               
               splitType splits a local symbol name into type and method (fn). If this a
free function, typ == "".
N.B. closures and methods can be ambiguous (e.g., bar.func1). These cases
are returned as methods.
               
               func splitType(name string) (typ string, fn string)
            
            
            
               
                  staticValue1 
                  function
                  
                  #
               
               
               func staticValue1(nn Node) Node
            
            
            
               
                  staticValue1 
                  method
                  
                  #
               
               
               func (ro *ReassignOracle) staticValue1(nn Node) Node
            
            
            
               
                  stmtFmt 
                  function
                  
                  #
               
               
               func stmtFmt(n Node, s fmt.State)
            
            
            
               
                  visit 
                  method
                  
                  #
               
               
               func (v *bottomUpVisitor) visit(n *Func) uint32