Source File
bimport.go
Belonging Package
golang.org/x/tools/internal/gcimporter
// Copyright 2015 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.// This file contains the remaining vestiges of// $GOROOT/src/go/internal/gcimporter/bimport.go.package gcimporterimport ()func ( string, ...any) {panic(fmt.Sprintf(, ...))}const deltaNewFile = -64 // see cmd/compile/internal/gc/bexport.go// Synthesize a token.Postype fakeFileSet struct {fset *token.FileSetfiles map[string]*fileInfo}type fileInfo struct {file *token.Filelastline int}const maxlines = 64 * 1024func ( *fakeFileSet) ( string, , int) token.Pos {// TODO(mdempsky): Make use of column.// Since we don't know the set of needed file positions, we reserve maxlines// positions per file. We delay calling token.File.SetLines until all// positions have been calculated (by way of fakeFileSet.setLines), so that// we can avoid setting unnecessary lines. See also golang/go#46586.:= .files[]if == nil {= &fileInfo{file: .fset.AddFile(, -1, maxlines)}.files[] =}if > maxlines {= 1}if > .lastline {.lastline =}// Return a fake position assuming that f.file consists only of newlines.return token.Pos(.file.Base() + - 1)}func ( *fakeFileSet) () {fakeLinesOnce.Do(func() {fakeLines = make([]int, maxlines)for := range fakeLines {fakeLines[] =}})for , := range .files {.file.SetLines(fakeLines[:.lastline])}}var (fakeLines []intfakeLinesOnce sync.Once)func ( int) types.ChanDir {// tag values must match the constants in cmd/compile/internal/gc/go.goswitch {case 1 /* Crecv */ :return types.RecvOnlycase 2 /* Csend */ :return types.SendOnlycase 3 /* Cboth */ :return types.SendRecvdefault:errorf("unexpected channel dir %d", )return 0}}
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)