- update service

master v1.0.85
李光春 1 year ago
parent b67842f51b
commit 60ce1d8dd1

@ -84,7 +84,7 @@ require (
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.5.0 // indirect
golang.org/x/time v0.3.0 // indirect
golang.org/x/tools v0.5.0 // indirect
golang.org/x/tools v0.6.0 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect

@ -674,8 +674,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.5.0 h1:+bSpV5HIeWkuvgaMfI3UmKRThoTA5ODJTUd8T17NO+4=
golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k=
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

@ -1,5 +1,5 @@
package go_library
func Version() string {
return "1.0.84"
return "1.0.85"
}

@ -65,3 +65,19 @@ func (c *Client) ApiOuterOrder(ctx context.Context, orderId string) *ApiOuterOrd
err = json.Unmarshal(request.ResponseBody, &response)
return newApiOuterOrderResult(response, request.ResponseBody, request, err)
}
func (resp ApiOuterOrderResponse) GetStateDesc(state int) string {
switch state {
case 100:
return "等待发货"
case 101:
return "正在充值"
case 200:
return "交易成功"
case 500:
return "交易失败"
case 501:
return "未知状态"
}
return ""
}

@ -49,3 +49,33 @@ func (c *Client) RestPowerQuery(ctx context.Context, orderNumber string) *RestPo
err = json.Unmarshal(request.ResponseBody, &response)
return newRestPowerQueryResult(response, request.ResponseBody, request, err)
}
func (resp RestPowerQueryResponse) GetStatusDesc(status int) string {
switch status {
case 1:
return "充值中"
case 2:
return "充值成功"
case 3:
return "充值失败"
case 4:
return "退款成功"
case 5:
return "已超时"
case 6:
return "待充值"
case 7:
return "已匹配"
case 8:
return "已存单"
case 9:
return "已取消"
case 10:
return "返销"
case 11:
return "部分到账"
case 12:
return "取消中"
}
return "待支付"
}

@ -48,3 +48,33 @@ func (c *Client) RestRechargeQuery(ctx context.Context, orderNumber string) *Res
err = json.Unmarshal(request.ResponseBody, &response)
return newRestRechargeQueryResult(response, request.ResponseBody, request, err)
}
func (resp RestRechargeQueryResponse) GetStatusDesc(status int) string {
switch status {
case 1:
return "充值中"
case 2:
return "充值成功"
case 3:
return "充值失败"
case 4:
return "退款成功"
case 5:
return "已超时"
case 6:
return "待充值"
case 7:
return "已匹配"
case 8:
return "已存单"
case 9:
return "已取消"
case 10:
return "返销"
case 11:
return "部分到账"
case 12:
return "取消中"
}
return "待支付"
}

@ -878,12 +878,19 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) {
// never has to create a types.Package for an indirect dependency,
// which would then require that such created packages be explicitly
// inserted back into the Import graph as a final step after export data loading.
// (Hence this return is after the Types assignment.)
// The Diamond test exercises this case.
if !lpkg.needtypes && !lpkg.needsrc {
return
}
if !lpkg.needsrc {
ld.loadFromExportData(lpkg)
if err := ld.loadFromExportData(lpkg); err != nil {
lpkg.Errors = append(lpkg.Errors, Error{
Pos: "-",
Msg: err.Error(),
Kind: UnknownError, // e.g. can't find/open/parse export data
})
}
return // not a source package, don't get syntax trees
}
@ -970,7 +977,8 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) {
// The config requested loading sources and types, but sources are missing.
// Add an error to the package and fall back to loading from export data.
appendError(Error{"-", fmt.Sprintf("sources missing for package %s", lpkg.ID), ParseError})
ld.loadFromExportData(lpkg)
_ = ld.loadFromExportData(lpkg) // ignore any secondary errors
return // can't get syntax trees for this package
}
@ -1194,9 +1202,10 @@ func sameFile(x, y string) bool {
return false
}
// loadFromExportData returns type information for the specified
// loadFromExportData ensures that type information is present for the specified
// package, loading it from an export data file on the first request.
func (ld *loader) loadFromExportData(lpkg *loaderPackage) (*types.Package, error) {
// On success it sets lpkg.Types to a new Package.
func (ld *loader) loadFromExportData(lpkg *loaderPackage) error {
if lpkg.PkgPath == "" {
log.Fatalf("internal error: Package %s has no PkgPath", lpkg)
}
@ -1207,8 +1216,8 @@ func (ld *loader) loadFromExportData(lpkg *loaderPackage) (*types.Package, error
// must be sequential. (Finer-grained locking would require
// changes to the gcexportdata API.)
//
// The exportMu lock guards the Package.Pkg field and the
// types.Package it points to, for each Package in the graph.
// The exportMu lock guards the lpkg.Types field and the
// types.Package it points to, for each loaderPackage in the graph.
//
// Not all accesses to Package.Pkg need to be protected by exportMu:
// graph ordering ensures that direct dependencies of source
@ -1217,18 +1226,18 @@ func (ld *loader) loadFromExportData(lpkg *loaderPackage) (*types.Package, error
defer ld.exportMu.Unlock()
if tpkg := lpkg.Types; tpkg != nil && tpkg.Complete() {
return tpkg, nil // cache hit
return nil // cache hit
}
lpkg.IllTyped = true // fail safe
if lpkg.ExportFile == "" {
// Errors while building export data will have been printed to stderr.
return nil, fmt.Errorf("no export data file")
return fmt.Errorf("no export data file")
}
f, err := os.Open(lpkg.ExportFile)
if err != nil {
return nil, err
return err
}
defer f.Close()
@ -1240,7 +1249,7 @@ func (ld *loader) loadFromExportData(lpkg *loaderPackage) (*types.Package, error
// queries.)
r, err := gcexportdata.NewReader(f)
if err != nil {
return nil, fmt.Errorf("reading %s: %v", lpkg.ExportFile, err)
return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err)
}
// Build the view.
@ -1284,7 +1293,7 @@ func (ld *loader) loadFromExportData(lpkg *loaderPackage) (*types.Package, error
// (May modify incomplete packages in view but not create new ones.)
tpkg, err := gcexportdata.Read(r, ld.Fset, view, lpkg.PkgPath)
if err != nil {
return nil, fmt.Errorf("reading %s: %v", lpkg.ExportFile, err)
return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err)
}
if _, ok := view["go.shape"]; ok {
// Account for the pseudopackage "go.shape" that gets
@ -1297,8 +1306,7 @@ func (ld *loader) loadFromExportData(lpkg *loaderPackage) (*types.Package, error
lpkg.Types = tpkg
lpkg.IllTyped = false
return tpkg, nil
return nil
}
// impliedLoadMode returns loadMode with its dependencies.

@ -22,6 +22,7 @@ import (
"strconv"
"strings"
"golang.org/x/tools/internal/tokeninternal"
"golang.org/x/tools/internal/typeparams"
)
@ -138,6 +139,17 @@ func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, ver
p.doDecl(p.declTodo.popHead())
}
// Produce index of offset of each file record in files.
var files intWriter
var fileOffset []uint64 // fileOffset[i] is offset in files of file encoded as i
if p.shallow {
fileOffset = make([]uint64, len(p.fileInfos))
for i, info := range p.fileInfos {
fileOffset[i] = uint64(files.Len())
p.encodeFile(&files, info.file, info.needed)
}
}
// Append indices to data0 section.
dataLen := uint64(p.data0.Len())
w := p.newWriter()
@ -163,16 +175,75 @@ func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, ver
}
hdr.uint64(uint64(p.version))
hdr.uint64(uint64(p.strings.Len()))
if p.shallow {
hdr.uint64(uint64(files.Len()))
hdr.uint64(uint64(len(fileOffset)))
for _, offset := range fileOffset {
hdr.uint64(offset)
}
}
hdr.uint64(dataLen)
// Flush output.
io.Copy(out, &hdr)
io.Copy(out, &p.strings)
if p.shallow {
io.Copy(out, &files)
}
io.Copy(out, &p.data0)
return nil
}
// encodeFile writes to w a representation of the file sufficient to
// faithfully restore position information about all needed offsets.
// Mutates the needed array.
func (p *iexporter) encodeFile(w *intWriter, file *token.File, needed []uint64) {
_ = needed[0] // precondition: needed is non-empty
w.uint64(p.stringOff(file.Name()))
size := uint64(file.Size())
w.uint64(size)
// Sort the set of needed offsets. Duplicates are harmless.
sort.Slice(needed, func(i, j int) bool { return needed[i] < needed[j] })
lines := tokeninternal.GetLines(file) // byte offset of each line start
w.uint64(uint64(len(lines)))
// Rather than record the entire array of line start offsets,
// we save only a sparse list of (index, offset) pairs for
// the start of each line that contains a needed position.
var sparse [][2]int // (index, offset) pairs
outer:
for i, lineStart := range lines {
lineEnd := size
if i < len(lines)-1 {
lineEnd = uint64(lines[i+1])
}
// Does this line contains a needed offset?
if needed[0] < lineEnd {
sparse = append(sparse, [2]int{i, lineStart})
for needed[0] < lineEnd {
needed = needed[1:]
if len(needed) == 0 {
break outer
}
}
}
}
// Delta-encode the columns.
w.uint64(uint64(len(sparse)))
var prev [2]int
for _, pair := range sparse {
w.uint64(uint64(pair[0] - prev[0]))
w.uint64(uint64(pair[1] - prev[1]))
prev = pair
}
}
// writeIndex writes out an object index. mainIndex indicates whether
// we're writing out the main index, which is also read by
// non-compiler tools and includes a complete package description
@ -255,6 +326,12 @@ type iexporter struct {
strings intWriter
stringIndex map[string]uint64
// In shallow mode, object positions are encoded as (file, offset).
// Each file is recorded as a line-number table.
// Only the lines of needed positions are saved faithfully.
fileInfo map[*token.File]uint64 // value is index in fileInfos
fileInfos []*filePositions
data0 intWriter
declIndex map[types.Object]uint64
tparamNames map[types.Object]string // typeparam->exported name
@ -263,6 +340,11 @@ type iexporter struct {
indent int // for tracing support
}
type filePositions struct {
file *token.File
needed []uint64 // unordered list of needed file offsets
}
func (p *iexporter) trace(format string, args ...interface{}) {
if !trace {
// Call sites should also be guarded, but having this check here allows
@ -286,6 +368,25 @@ func (p *iexporter) stringOff(s string) uint64 {
return off
}
// fileIndexAndOffset returns the index of the token.File and the byte offset of pos within it.
func (p *iexporter) fileIndexAndOffset(file *token.File, pos token.Pos) (uint64, uint64) {
index, ok := p.fileInfo[file]
if !ok {
index = uint64(len(p.fileInfo))
p.fileInfos = append(p.fileInfos, &filePositions{file: file})
if p.fileInfo == nil {
p.fileInfo = make(map[*token.File]uint64)
}
p.fileInfo[file] = index
}
// Record each needed offset.
info := p.fileInfos[index]
offset := uint64(file.Offset(pos))
info.needed = append(info.needed, offset)
return index, offset
}
// pushDecl adds n to the declaration work queue, if not already present.
func (p *iexporter) pushDecl(obj types.Object) {
// Package unsafe is known to the compiler and predeclared.
@ -346,7 +447,13 @@ func (p *iexporter) doDecl(obj types.Object) {
case *types.Func:
sig, _ := obj.Type().(*types.Signature)
if sig.Recv() != nil {
panic(internalErrorf("unexpected method: %v", sig))
// We shouldn't see methods in the package scope,
// but the type checker may repair "func () F() {}"
// to "func (Invalid) F()" and then treat it like "func F()",
// so allow that. See golang/go#57729.
if sig.Recv().Type() != types.Typ[types.Invalid] {
panic(internalErrorf("unexpected method: %v", sig))
}
}
// Function.
@ -458,13 +565,30 @@ func (w *exportWriter) tag(tag byte) {
}
func (w *exportWriter) pos(pos token.Pos) {
if w.p.version >= iexportVersionPosCol {
if w.p.shallow {
w.posV2(pos)
} else if w.p.version >= iexportVersionPosCol {
w.posV1(pos)
} else {
w.posV0(pos)
}
}
// posV2 encoding (used only in shallow mode) records positions as
// (file, offset), where file is the index in the token.File table
// (which records the file name and newline offsets) and offset is a
// byte offset. It effectively ignores //line directives.
func (w *exportWriter) posV2(pos token.Pos) {
if pos == token.NoPos {
w.uint64(0)
return
}
file := w.p.fset.File(pos) // fset must be non-nil
index, offset := w.p.fileIndexAndOffset(file, pos)
w.uint64(1 + index)
w.uint64(offset)
}
func (w *exportWriter) posV1(pos token.Pos) {
if w.p.fset == nil {
w.int64(0)

@ -137,12 +137,23 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data
}
sLen := int64(r.uint64())
var fLen int64
var fileOffset []uint64
if insert != nil {
// Shallow mode uses a different position encoding.
fLen = int64(r.uint64())
fileOffset = make([]uint64, r.uint64())
for i := range fileOffset {
fileOffset[i] = r.uint64()
}
}
dLen := int64(r.uint64())
whence, _ := r.Seek(0, io.SeekCurrent)
stringData := data[whence : whence+sLen]
declData := data[whence+sLen : whence+sLen+dLen]
r.Seek(sLen+dLen, io.SeekCurrent)
fileData := data[whence+sLen : whence+sLen+fLen]
declData := data[whence+sLen+fLen : whence+sLen+fLen+dLen]
r.Seek(sLen+fLen+dLen, io.SeekCurrent)
p := iimporter{
version: int(version),
@ -151,6 +162,9 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data
stringData: stringData,
stringCache: make(map[uint64]string),
fileOffset: fileOffset,
fileData: fileData,
fileCache: make([]*token.File, len(fileOffset)),
pkgCache: make(map[uint64]*types.Package),
declData: declData,
@ -280,6 +294,9 @@ type iimporter struct {
stringData []byte
stringCache map[uint64]string
fileOffset []uint64 // fileOffset[i] is offset in fileData for info about file encoded as i
fileData []byte
fileCache []*token.File // memoized decoding of file encoded as i
pkgCache map[uint64]*types.Package
declData []byte
@ -352,6 +369,55 @@ func (p *iimporter) stringAt(off uint64) string {
return s
}
func (p *iimporter) fileAt(index uint64) *token.File {
file := p.fileCache[index]
if file == nil {
off := p.fileOffset[index]
file = p.decodeFile(intReader{bytes.NewReader(p.fileData[off:]), p.ipath})
p.fileCache[index] = file
}
return file
}
func (p *iimporter) decodeFile(rd intReader) *token.File {
filename := p.stringAt(rd.uint64())
size := int(rd.uint64())
file := p.fake.fset.AddFile(filename, -1, size)
// SetLines requires a nondecreasing sequence.
// Because it is common for clients to derive the interval
// [start, start+len(name)] from a start position, and we
// want to ensure that the end offset is on the same line,
// we fill in the gaps of the sparse encoding with values
// that strictly increase by the largest possible amount.
// This allows us to avoid having to record the actual end
// offset of each needed line.
lines := make([]int, int(rd.uint64()))
var index, offset int
for i, n := 0, int(rd.uint64()); i < n; i++ {
index += int(rd.uint64())
offset += int(rd.uint64())
lines[index] = offset
// Ensure monotonicity between points.
for j := index - 1; j > 0 && lines[j] == 0; j-- {
lines[j] = lines[j+1] - 1
}
}
// Ensure monotonicity after last point.
for j := len(lines) - 1; j > 0 && lines[j] == 0; j-- {
size--
lines[j] = size
}
if !file.SetLines(lines) {
errorf("SetLines failed: %d", lines) // can't happen
}
return file
}
func (p *iimporter) pkgAt(off uint64) *types.Package {
if pkg, ok := p.pkgCache[off]; ok {
return pkg
@ -645,6 +711,9 @@ func (r *importReader) qualifiedIdent() (*types.Package, string) {
}
func (r *importReader) pos() token.Pos {
if r.p.insert != nil { // shallow mode
return r.posv2()
}
if r.p.version >= iexportVersionPosCol {
r.posv1()
} else {
@ -681,6 +750,15 @@ func (r *importReader) posv1() {
}
}
func (r *importReader) posv2() token.Pos {
file := r.uint64()
if file == 0 {
return token.NoPos
}
tf := r.p.fileAt(file - 1)
return tf.Pos(int(r.uint64()))
}
func (r *importReader) typ() types.Type {
return r.p.typAt(r.uint64(), nil)
}

@ -799,7 +799,7 @@ func GetPackageExports(ctx context.Context, wrapped func(PackageExport), searchP
return getCandidatePkgs(ctx, callback, filename, filePkg, env)
}
var RequiredGoEnvVars = []string{"GO111MODULE", "GOFLAGS", "GOINSECURE", "GOMOD", "GOMODCACHE", "GONOPROXY", "GONOSUMDB", "GOPATH", "GOPROXY", "GOROOT", "GOSUMDB", "GOWORK"}
var requiredGoEnvVars = []string{"GO111MODULE", "GOFLAGS", "GOINSECURE", "GOMOD", "GOMODCACHE", "GONOPROXY", "GONOSUMDB", "GOPATH", "GOPROXY", "GOROOT", "GOSUMDB", "GOWORK"}
// ProcessEnv contains environment variables and settings that affect the use of
// the go command, the go/build package, etc.
@ -869,7 +869,7 @@ func (e *ProcessEnv) init() error {
}
foundAllRequired := true
for _, k := range RequiredGoEnvVars {
for _, k := range requiredGoEnvVars {
if _, ok := e.Env[k]; !ok {
foundAllRequired = false
break
@ -885,7 +885,7 @@ func (e *ProcessEnv) init() error {
}
goEnv := map[string]string{}
stdout, err := e.invokeGo(context.TODO(), "env", append([]string{"-json"}, RequiredGoEnvVars...)...)
stdout, err := e.invokeGo(context.TODO(), "env", append([]string{"-json"}, requiredGoEnvVars...)...)
if err != nil {
return err
}

@ -10,6 +10,7 @@ var stdlib = map[string][]string{
"archive/tar": {
"ErrFieldTooLong",
"ErrHeader",
"ErrInsecurePath",
"ErrWriteAfterClose",
"ErrWriteTooLong",
"FileInfoHeader",
@ -45,6 +46,7 @@ var stdlib = map[string][]string{
"ErrAlgorithm",
"ErrChecksum",
"ErrFormat",
"ErrInsecurePath",
"File",
"FileHeader",
"FileInfoHeader",
@ -87,12 +89,15 @@ var stdlib = map[string][]string{
},
"bytes": {
"Buffer",
"Clone",
"Compare",
"Contains",
"ContainsAny",
"ContainsRune",
"Count",
"Cut",
"CutPrefix",
"CutSuffix",
"Equal",
"EqualFold",
"ErrTooLarge",
@ -224,12 +229,15 @@ var stdlib = map[string][]string{
},
"context": {
"Background",
"CancelCauseFunc",
"CancelFunc",
"Canceled",
"Cause",
"Context",
"DeadlineExceeded",
"TODO",
"WithCancel",
"WithCancelCause",
"WithDeadline",
"WithTimeout",
"WithValue",
@ -306,6 +314,15 @@ var stdlib = map[string][]string{
"Sign",
"Verify",
},
"crypto/ecdh": {
"Curve",
"P256",
"P384",
"P521",
"PrivateKey",
"PublicKey",
"X25519",
},
"crypto/ecdsa": {
"GenerateKey",
"PrivateKey",
@ -318,6 +335,7 @@ var stdlib = map[string][]string{
"crypto/ed25519": {
"GenerateKey",
"NewKeyFromSeed",
"Options",
"PrivateKey",
"PrivateKeySize",
"PublicKey",
@ -326,6 +344,7 @@ var stdlib = map[string][]string{
"Sign",
"SignatureSize",
"Verify",
"VerifyWithOptions",
},
"crypto/elliptic": {
"Curve",
@ -423,10 +442,12 @@ var stdlib = map[string][]string{
"ConstantTimeEq",
"ConstantTimeLessOrEq",
"ConstantTimeSelect",
"XORBytes",
},
"crypto/tls": {
"Certificate",
"CertificateRequestInfo",
"CertificateVerificationError",
"CipherSuite",
"CipherSuiteName",
"CipherSuites",
@ -604,6 +625,7 @@ var stdlib = map[string][]string{
"SHA384WithRSAPSS",
"SHA512WithRSA",
"SHA512WithRSAPSS",
"SetFallbackRoots",
"SignatureAlgorithm",
"SystemCertPool",
"SystemRootsError",
@ -1828,19 +1850,42 @@ var stdlib = map[string][]string{
"R_INFO32",
"R_LARCH",
"R_LARCH_32",
"R_LARCH_32_PCREL",
"R_LARCH_64",
"R_LARCH_ABS64_HI12",
"R_LARCH_ABS64_LO20",
"R_LARCH_ABS_HI20",
"R_LARCH_ABS_LO12",
"R_LARCH_ADD16",
"R_LARCH_ADD24",
"R_LARCH_ADD32",
"R_LARCH_ADD64",
"R_LARCH_ADD8",
"R_LARCH_B16",
"R_LARCH_B21",
"R_LARCH_B26",
"R_LARCH_COPY",
"R_LARCH_GNU_VTENTRY",
"R_LARCH_GNU_VTINHERIT",
"R_LARCH_GOT64_HI12",
"R_LARCH_GOT64_LO20",
"R_LARCH_GOT64_PC_HI12",
"R_LARCH_GOT64_PC_LO20",
"R_LARCH_GOT_HI20",
"R_LARCH_GOT_LO12",
"R_LARCH_GOT_PC_HI20",
"R_LARCH_GOT_PC_LO12",
"R_LARCH_IRELATIVE",
"R_LARCH_JUMP_SLOT",
"R_LARCH_MARK_LA",
"R_LARCH_MARK_PCREL",
"R_LARCH_NONE",
"R_LARCH_PCALA64_HI12",
"R_LARCH_PCALA64_LO20",
"R_LARCH_PCALA_HI20",
"R_LARCH_PCALA_LO12",
"R_LARCH_RELATIVE",
"R_LARCH_RELAX",
"R_LARCH_SOP_ADD",
"R_LARCH_SOP_AND",
"R_LARCH_SOP_ASSERT",
@ -1875,6 +1920,22 @@ var stdlib = map[string][]string{
"R_LARCH_TLS_DTPMOD64",
"R_LARCH_TLS_DTPREL32",
"R_LARCH_TLS_DTPREL64",
"R_LARCH_TLS_GD_HI20",
"R_LARCH_TLS_GD_PC_HI20",
"R_LARCH_TLS_IE64_HI12",
"R_LARCH_TLS_IE64_LO20",
"R_LARCH_TLS_IE64_PC_HI12",
"R_LARCH_TLS_IE64_PC_LO20",
"R_LARCH_TLS_IE_HI20",
"R_LARCH_TLS_IE_LO12",
"R_LARCH_TLS_IE_PC_HI20",
"R_LARCH_TLS_IE_PC_LO12",
"R_LARCH_TLS_LD_HI20",
"R_LARCH_TLS_LD_PC_HI20",
"R_LARCH_TLS_LE64_HI12",
"R_LARCH_TLS_LE64_LO20",
"R_LARCH_TLS_LE_HI20",
"R_LARCH_TLS_LE_LO12",
"R_LARCH_TLS_TPREL32",
"R_LARCH_TLS_TPREL64",
"R_MIPS",
@ -1938,15 +1999,25 @@ var stdlib = map[string][]string{
"R_PPC64_ADDR16_HIGH",
"R_PPC64_ADDR16_HIGHA",
"R_PPC64_ADDR16_HIGHER",
"R_PPC64_ADDR16_HIGHER34",
"R_PPC64_ADDR16_HIGHERA",
"R_PPC64_ADDR16_HIGHERA34",
"R_PPC64_ADDR16_HIGHEST",
"R_PPC64_ADDR16_HIGHEST34",
"R_PPC64_ADDR16_HIGHESTA",
"R_PPC64_ADDR16_HIGHESTA34",
"R_PPC64_ADDR16_LO",
"R_PPC64_ADDR16_LO_DS",
"R_PPC64_ADDR24",
"R_PPC64_ADDR32",
"R_PPC64_ADDR64",
"R_PPC64_ADDR64_LOCAL",
"R_PPC64_COPY",
"R_PPC64_D28",
"R_PPC64_D34",
"R_PPC64_D34_HA30",
"R_PPC64_D34_HI30",
"R_PPC64_D34_LO",
"R_PPC64_DTPMOD64",
"R_PPC64_DTPREL16",
"R_PPC64_DTPREL16_DS",
@ -1960,8 +2031,12 @@ var stdlib = map[string][]string{
"R_PPC64_DTPREL16_HIGHESTA",
"R_PPC64_DTPREL16_LO",
"R_PPC64_DTPREL16_LO_DS",
"R_PPC64_DTPREL34",
"R_PPC64_DTPREL64",
"R_PPC64_ENTRY",
"R_PPC64_GLOB_DAT",
"R_PPC64_GNU_VTENTRY",
"R_PPC64_GNU_VTINHERIT",
"R_PPC64_GOT16",
"R_PPC64_GOT16_DS",
"R_PPC64_GOT16_HA",
@ -1972,29 +2047,50 @@ var stdlib = map[string][]string{
"R_PPC64_GOT_DTPREL16_HA",
"R_PPC64_GOT_DTPREL16_HI",
"R_PPC64_GOT_DTPREL16_LO_DS",
"R_PPC64_GOT_DTPREL_PCREL34",
"R_PPC64_GOT_PCREL34",
"R_PPC64_GOT_TLSGD16",
"R_PPC64_GOT_TLSGD16_HA",
"R_PPC64_GOT_TLSGD16_HI",
"R_PPC64_GOT_TLSGD16_LO",
"R_PPC64_GOT_TLSGD_PCREL34",
"R_PPC64_GOT_TLSLD16",
"R_PPC64_GOT_TLSLD16_HA",
"R_PPC64_GOT_TLSLD16_HI",
"R_PPC64_GOT_TLSLD16_LO",
"R_PPC64_GOT_TLSLD_PCREL34",
"R_PPC64_GOT_TPREL16_DS",
"R_PPC64_GOT_TPREL16_HA",
"R_PPC64_GOT_TPREL16_HI",
"R_PPC64_GOT_TPREL16_LO_DS",
"R_PPC64_GOT_TPREL_PCREL34",
"R_PPC64_IRELATIVE",
"R_PPC64_JMP_IREL",
"R_PPC64_JMP_SLOT",
"R_PPC64_NONE",
"R_PPC64_PCREL28",
"R_PPC64_PCREL34",
"R_PPC64_PCREL_OPT",
"R_PPC64_PLT16_HA",
"R_PPC64_PLT16_HI",
"R_PPC64_PLT16_LO",
"R_PPC64_PLT16_LO_DS",
"R_PPC64_PLT32",
"R_PPC64_PLT64",
"R_PPC64_PLTCALL",
"R_PPC64_PLTCALL_NOTOC",
"R_PPC64_PLTGOT16",
"R_PPC64_PLTGOT16_DS",
"R_PPC64_PLTGOT16_HA",
"R_PPC64_PLTGOT16_HI",
"R_PPC64_PLTGOT16_LO",
"R_PPC64_PLTGOT_LO_DS",
"R_PPC64_PLTREL32",
"R_PPC64_PLTREL64",
"R_PPC64_PLTSEQ",
"R_PPC64_PLTSEQ_NOTOC",
"R_PPC64_PLT_PCREL34",
"R_PPC64_PLT_PCREL34_NOTOC",
"R_PPC64_REL14",
"R_PPC64_REL14_BRNTAKEN",
"R_PPC64_REL14_BRTAKEN",
@ -2002,13 +2098,28 @@ var stdlib = map[string][]string{
"R_PPC64_REL16DX_HA",
"R_PPC64_REL16_HA",
"R_PPC64_REL16_HI",
"R_PPC64_REL16_HIGH",
"R_PPC64_REL16_HIGHA",
"R_PPC64_REL16_HIGHER",
"R_PPC64_REL16_HIGHER34",
"R_PPC64_REL16_HIGHERA",
"R_PPC64_REL16_HIGHERA34",
"R_PPC64_REL16_HIGHEST",
"R_PPC64_REL16_HIGHEST34",
"R_PPC64_REL16_HIGHESTA",
"R_PPC64_REL16_HIGHESTA34",
"R_PPC64_REL16_LO",
"R_PPC64_REL24",
"R_PPC64_REL24_NOTOC",
"R_PPC64_REL30",
"R_PPC64_REL32",
"R_PPC64_REL64",
"R_PPC64_RELATIVE",
"R_PPC64_SECTOFF",
"R_PPC64_SECTOFF_DS",
"R_PPC64_SECTOFF_HA",
"R_PPC64_SECTOFF_HI",
"R_PPC64_SECTOFF_LO",
"R_PPC64_SECTOFF_LO_DS",
"R_PPC64_TLS",
"R_PPC64_TLSGD",
@ -2033,7 +2144,11 @@ var stdlib = map[string][]string{
"R_PPC64_TPREL16_HIGHESTA",
"R_PPC64_TPREL16_LO",
"R_PPC64_TPREL16_LO_DS",
"R_PPC64_TPREL34",
"R_PPC64_TPREL64",
"R_PPC64_UADDR16",
"R_PPC64_UADDR32",
"R_PPC64_UADDR64",
"R_PPC_ADDR14",
"R_PPC_ADDR14_BRNTAKEN",
"R_PPC_ADDR14_BRTAKEN",
@ -2581,6 +2696,9 @@ var stdlib = map[string][]string{
"IMAGE_FILE_MACHINE_POWERPC",
"IMAGE_FILE_MACHINE_POWERPCFP",
"IMAGE_FILE_MACHINE_R4000",
"IMAGE_FILE_MACHINE_RISCV128",
"IMAGE_FILE_MACHINE_RISCV32",
"IMAGE_FILE_MACHINE_RISCV64",
"IMAGE_FILE_MACHINE_SH3",
"IMAGE_FILE_MACHINE_SH3DSP",
"IMAGE_FILE_MACHINE_SH4",
@ -2846,6 +2964,7 @@ var stdlib = map[string][]string{
"errors": {
"As",
"Is",
"Join",
"New",
"Unwrap",
},
@ -2916,6 +3035,7 @@ var stdlib = map[string][]string{
"Appendf",
"Appendln",
"Errorf",
"FormatString",
"Formatter",
"Fprint",
"Fprintf",
@ -3401,6 +3521,7 @@ var stdlib = map[string][]string{
"RecvOnly",
"RelativeTo",
"Rune",
"Satisfies",
"Scope",
"Selection",
"SelectionKind",
@ -3702,8 +3823,10 @@ var stdlib = map[string][]string{
"LimitedReader",
"MultiReader",
"MultiWriter",
"NewOffsetWriter",
"NewSectionReader",
"NopCloser",
"OffsetWriter",
"Pipe",
"PipeReader",
"PipeWriter",
@ -3770,6 +3893,7 @@ var stdlib = map[string][]string{
"ReadDirFile",
"ReadFile",
"ReadFileFS",
"SkipAll",
"SkipDir",
"Stat",
"StatFS",
@ -4140,6 +4264,7 @@ var stdlib = map[string][]string{
"FlagLoopback",
"FlagMulticast",
"FlagPointToPoint",
"FlagRunning",
"FlagUp",
"Flags",
"HardwareAddr",
@ -4284,6 +4409,7 @@ var stdlib = map[string][]string{
"NewFileTransport",
"NewRequest",
"NewRequestWithContext",
"NewResponseController",
"NewServeMux",
"NoBody",
"NotFound",
@ -4303,6 +4429,7 @@ var stdlib = map[string][]string{
"RedirectHandler",
"Request",
"Response",
"ResponseController",
"ResponseWriter",
"RoundTripper",
"SameSite",
@ -4445,6 +4572,7 @@ var stdlib = map[string][]string{
"NewProxyClientConn",
"NewServerConn",
"NewSingleHostReverseProxy",
"ProxyRequest",
"ReverseProxy",
"ServerConn",
},
@ -4476,6 +4604,8 @@ var stdlib = map[string][]string{
"AddrPortFrom",
"IPv4Unspecified",
"IPv6LinkLocalAllNodes",
"IPv6LinkLocalAllRouters",
"IPv6Loopback",
"IPv6Unspecified",
"MustParseAddr",
"MustParseAddrPort",
@ -4686,6 +4816,7 @@ var stdlib = map[string][]string{
"CommandContext",
"ErrDot",
"ErrNotFound",
"ErrWaitDelay",
"Error",
"ExitError",
"LookPath",
@ -4734,11 +4865,13 @@ var stdlib = map[string][]string{
"Glob",
"HasPrefix",
"IsAbs",
"IsLocal",
"Join",
"ListSeparator",
"Match",
"Rel",
"Separator",
"SkipAll",
"SkipDir",
"Split",
"SplitList",
@ -4860,6 +4993,7 @@ var stdlib = map[string][]string{
"ErrInvalidRepeatOp",
"ErrInvalidRepeatSize",
"ErrInvalidUTF8",
"ErrLarge",
"ErrMissingBracket",
"ErrMissingParen",
"ErrMissingRepeatArgument",
@ -4968,8 +5102,16 @@ var stdlib = map[string][]string{
},
"runtime/cgo": {
"Handle",
"Incomplete",
"NewHandle",
},
"runtime/coverage": {
"ClearCounters",
"WriteCounters",
"WriteCountersDir",
"WriteMeta",
"WriteMetaDir",
},
"runtime/debug": {
"BuildInfo",
"BuildSetting",
@ -5103,6 +5245,8 @@ var stdlib = map[string][]string{
"ContainsRune",
"Count",
"Cut",
"CutPrefix",
"CutSuffix",
"EqualFold",
"Fields",
"FieldsFunc",
@ -5272,6 +5416,7 @@ var stdlib = map[string][]string{
"AF_TIPC",
"AF_UNIX",
"AF_UNSPEC",
"AF_UTUN",
"AF_VENDOR00",
"AF_VENDOR01",
"AF_VENDOR02",
@ -5610,20 +5755,25 @@ var stdlib = map[string][]string{
"CLOCAL",
"CLONE_CHILD_CLEARTID",
"CLONE_CHILD_SETTID",
"CLONE_CLEAR_SIGHAND",
"CLONE_CSIGNAL",
"CLONE_DETACHED",
"CLONE_FILES",
"CLONE_FS",
"CLONE_INTO_CGROUP",
"CLONE_IO",
"CLONE_NEWCGROUP",
"CLONE_NEWIPC",
"CLONE_NEWNET",
"CLONE_NEWNS",
"CLONE_NEWPID",
"CLONE_NEWTIME",
"CLONE_NEWUSER",
"CLONE_NEWUTS",
"CLONE_PARENT",
"CLONE_PARENT_SETTID",
"CLONE_PID",
"CLONE_PIDFD",
"CLONE_PTRACE",
"CLONE_SETTLS",
"CLONE_SIGHAND",
@ -6166,6 +6316,7 @@ var stdlib = map[string][]string{
"EPROTONOSUPPORT",
"EPROTOTYPE",
"EPWROFF",
"EQFULL",
"ERANGE",
"EREMCHG",
"EREMOTE",
@ -6592,6 +6743,7 @@ var stdlib = map[string][]string{
"F_DUPFD",
"F_DUPFD_CLOEXEC",
"F_EXLCK",
"F_FINDSIGS",
"F_FLUSH_DATA",
"F_FREEZE_FS",
"F_FSCTL",
@ -6602,6 +6754,7 @@ var stdlib = map[string][]string{
"F_FSPRIV",
"F_FSVOID",
"F_FULLFSYNC",
"F_GETCODEDIR",
"F_GETFD",
"F_GETFL",
"F_GETLEASE",
@ -6615,6 +6768,7 @@ var stdlib = map[string][]string{
"F_GETPATH_MTMINFO",
"F_GETPIPE_SZ",
"F_GETPROTECTIONCLASS",
"F_GETPROTECTIONLEVEL",
"F_GETSIG",
"F_GLOBAL_NOCACHE",
"F_LOCK",
@ -6647,6 +6801,7 @@ var stdlib = map[string][]string{
"F_SETLK64",
"F_SETLKW",
"F_SETLKW64",
"F_SETLKWTIMEOUT",
"F_SETLK_REMOTE",
"F_SETNOSIGPIPE",
"F_SETOWN",
@ -6656,9 +6811,11 @@ var stdlib = map[string][]string{
"F_SETSIG",
"F_SETSIZE",
"F_SHLCK",
"F_SINGLE_WRITER",
"F_TEST",
"F_THAW_FS",
"F_TLOCK",
"F_TRANSCODEKEY",
"F_ULOCK",
"F_UNLCK",
"F_UNLCKSYS",
@ -7854,12 +8011,20 @@ var stdlib = map[string][]string{
"NOFLSH",
"NOTE_ABSOLUTE",
"NOTE_ATTRIB",
"NOTE_BACKGROUND",
"NOTE_CHILD",
"NOTE_CRITICAL",
"NOTE_DELETE",
"NOTE_EOF",
"NOTE_EXEC",
"NOTE_EXIT",
"NOTE_EXITSTATUS",
"NOTE_EXIT_CSERROR",
"NOTE_EXIT_DECRYPTFAIL",
"NOTE_EXIT_DETAIL",
"NOTE_EXIT_DETAIL_MASK",
"NOTE_EXIT_MEMORY",
"NOTE_EXIT_REPARENTED",
"NOTE_EXTEND",
"NOTE_FFAND",
"NOTE_FFCOPY",
@ -7868,6 +8033,7 @@ var stdlib = map[string][]string{
"NOTE_FFNOP",
"NOTE_FFOR",
"NOTE_FORK",
"NOTE_LEEWAY",
"NOTE_LINK",
"NOTE_LOWAT",
"NOTE_NONE",
@ -7946,6 +8112,7 @@ var stdlib = map[string][]string{
"O_CREAT",
"O_DIRECT",
"O_DIRECTORY",
"O_DP_GETRAWENCRYPTED",
"O_DSYNC",
"O_EVTONLY",
"O_EXCL",
@ -8235,6 +8402,7 @@ var stdlib = map[string][]string{
"RLIMIT_AS",
"RLIMIT_CORE",
"RLIMIT_CPU",
"RLIMIT_CPU_USAGE_MONITOR",
"RLIMIT_DATA",
"RLIMIT_FSIZE",
"RLIMIT_NOFILE",
@ -8347,9 +8515,11 @@ var stdlib = map[string][]string{
"RTF_PROTO1",
"RTF_PROTO2",
"RTF_PROTO3",
"RTF_PROXY",
"RTF_REINSTATE",
"RTF_REJECT",
"RTF_RNH_LOCKED",
"RTF_ROUTER",
"RTF_SOURCE",
"RTF_SRC",
"RTF_STATIC",
@ -8868,6 +9038,7 @@ var stdlib = map[string][]string{
"SO_NO_OFFLOAD",
"SO_NP_EXTENSIONS",
"SO_NREAD",
"SO_NUMRCVPKT",
"SO_NWRITE",
"SO_OOBINLINE",
"SO_OVERFLOWED",
@ -9037,6 +9208,7 @@ var stdlib = map[string][]string{
"SYS_CREAT",
"SYS_CREATE_MODULE",
"SYS_CSOPS",
"SYS_CSOPS_AUDITTOKEN",
"SYS_DELETE",
"SYS_DELETE_MODULE",
"SYS_DUP",
@ -9223,6 +9395,7 @@ var stdlib = map[string][]string{
"SYS_JAIL_GET",
"SYS_JAIL_REMOVE",
"SYS_JAIL_SET",
"SYS_KAS_INFO",
"SYS_KDEBUG_TRACE",
"SYS_KENV",
"SYS_KEVENT",
@ -9250,6 +9423,7 @@ var stdlib = map[string][]string{
"SYS_LCHMOD",
"SYS_LCHOWN",
"SYS_LCHOWN32",
"SYS_LEDGER",
"SYS_LGETFH",
"SYS_LGETXATTR",
"SYS_LINK",
@ -9346,6 +9520,7 @@ var stdlib = map[string][]string{
"SYS_OPENAT",
"SYS_OPENBSD_POLL",
"SYS_OPEN_BY_HANDLE_AT",
"SYS_OPEN_DPROTECTED_NP",
"SYS_OPEN_EXTENDED",
"SYS_OPEN_NOCANCEL",
"SYS_OVADVISE",
@ -9978,6 +10153,7 @@ var stdlib = map[string][]string{
"TCP_CONNECTIONTIMEOUT",
"TCP_CORK",
"TCP_DEFER_ACCEPT",
"TCP_ENABLE_ECN",
"TCP_INFO",
"TCP_KEEPALIVE",
"TCP_KEEPCNT",
@ -10000,11 +10176,13 @@ var stdlib = map[string][]string{
"TCP_NODELAY",
"TCP_NOOPT",
"TCP_NOPUSH",
"TCP_NOTSENT_LOWAT",
"TCP_NSTATES",
"TCP_QUICKACK",
"TCP_RXT_CONNDROPTIME",
"TCP_RXT_FINDROP",
"TCP_SACK_ENABLE",
"TCP_SENDMOREACKS",
"TCP_SYNCNT",
"TCP_VENDOR",
"TCP_WINDOW_CLAMP",
@ -10540,6 +10718,8 @@ var stdlib = map[string][]string{
"April",
"August",
"Date",
"DateOnly",
"DateTime",
"December",
"Duration",
"February",
@ -10594,6 +10774,7 @@ var stdlib = map[string][]string{
"Tick",
"Ticker",
"Time",
"TimeOnly",
"Timer",
"Tuesday",
"UTC",
@ -10892,6 +11073,7 @@ var stdlib = map[string][]string{
"Zs",
},
"unicode/utf16": {
"AppendRune",
"Decode",
"DecodeRune",
"Encode",
@ -10920,10 +11102,14 @@ var stdlib = map[string][]string{
"ValidString",
},
"unsafe": {
"Add",
"Alignof",
"ArbitraryType",
"Offsetof",
"Pointer",
"Sizeof",
"Slice",
"SliceData",
"String",
"StringData",
},
}

@ -373,7 +373,7 @@ func (r *Decoder) Int64() int64 {
return r.rawVarint()
}
// Int64 decodes and returns a uint64 value from the element bitstream.
// Uint64 decodes and returns a uint64 value from the element bitstream.
func (r *Decoder) Uint64() uint64 {
r.Sync(SyncUint64)
return r.rawUvarint()

@ -293,7 +293,7 @@ func (w *Encoder) Len(x int) { assert(x >= 0); w.Uint64(uint64(x)) }
// Int encodes and writes an int value into the element bitstream.
func (w *Encoder) Int(x int) { w.Int64(int64(x)) }
// Len encodes and writes a uint value into the element bitstream.
// Uint encodes and writes a uint value into the element bitstream.
func (w *Encoder) Uint(x uint) { w.Uint64(uint64(x)) }
// Reloc encodes and writes a relocation for the given (section,

@ -0,0 +1,59 @@
// Copyright 2023 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// package tokeninternal provides access to some internal features of the token
// package.
package tokeninternal
import (
"go/token"
"sync"
"unsafe"
)
// GetLines returns the table of line-start offsets from a token.File.
func GetLines(file *token.File) []int {
// token.File has a Lines method on Go 1.21 and later.
if file, ok := (interface{})(file).(interface{ Lines() []int }); ok {
return file.Lines()
}
// This declaration must match that of token.File.
// This creates a risk of dependency skew.
// For now we check that the size of the two
// declarations is the same, on the (fragile) assumption
// that future changes would add fields.
type tokenFile119 struct {
_ string
_ int
_ int
mu sync.Mutex // we're not complete monsters
lines []int
_ []struct{}
}
type tokenFile118 struct {
_ *token.FileSet // deleted in go1.19
tokenFile119
}
type uP = unsafe.Pointer
switch unsafe.Sizeof(*file) {
case unsafe.Sizeof(tokenFile118{}):
var ptr *tokenFile118
*(*uP)(uP(&ptr)) = uP(file)
ptr.mu.Lock()
defer ptr.mu.Unlock()
return ptr.lines
case unsafe.Sizeof(tokenFile119{}):
var ptr *tokenFile119
*(*uP)(uP(&ptr)) = uP(file)
ptr.mu.Lock()
defer ptr.mu.Unlock()
return ptr.lines
default:
panic("unexpected token.File size")
}
}

@ -382,7 +382,7 @@ golang.org/x/text/width
# golang.org/x/time v0.3.0
## explicit
golang.org/x/time/rate
# golang.org/x/tools v0.5.0
# golang.org/x/tools v0.6.0
## explicit; go 1.18
golang.org/x/tools/go/ast/astutil
golang.org/x/tools/go/gcexportdata
@ -400,6 +400,7 @@ golang.org/x/tools/internal/gopathwalk
golang.org/x/tools/internal/imports
golang.org/x/tools/internal/packagesinternal
golang.org/x/tools/internal/pkgbits
golang.org/x/tools/internal/tokeninternal
golang.org/x/tools/internal/typeparams
golang.org/x/tools/internal/typesinternal
# google.golang.org/protobuf v1.28.1

Loading…
Cancel
Save