const isTypes2 … // cmpPos compares the positions p and q and returns a result r as follows: // // r < 0: p is before q // r == 0: p and q are the same position (but may not be identical) // r > 0: p is after q // // If p and q are in different files, p is before q if the filename // of p sorts lexicographically before the filename of q. func cmpPos(p, q syntax.Pos) int { … } // hasDots reports whether the last argument in the call is followed by ... func hasDots(call *syntax.CallExpr) bool { … } // dddErrPos returns the node (poser) for reporting an invalid ... use in a call. func dddErrPos(call *syntax.CallExpr) *syntax.CallExpr { … } // isdddArray reports whether atyp is of the form [...]E. func isdddArray(atyp *syntax.ArrayType) bool { … } // argErrPos returns the node (poser) for reporting an invalid argument count. func argErrPos(call *syntax.CallExpr) *syntax.CallExpr { … } // ExprString returns a string representation of x. func ExprString(x syntax.Node) string { … } // startPos returns the start position of node n. func startPos(n syntax.Node) syntax.Pos { … } // endPos returns the position of the first character immediately after node n. func endPos(n syntax.Node) syntax.Pos { … } // inNode is a dummy function returning pos. func inNode(_ syntax.Node, pos syntax.Pos) syntax.Pos { … } // makeFromLiteral returns the constant value for the given literal string and kind. func makeFromLiteral(lit string, kind syntax.LitKind) constant.Value { … } var kind2tok …