pkg debug/pe, const IMAGE_SUBSYSTEM_XBOX ideal-int
pkg go/printer, const StdFormat = 16
pkg go/printer, const StdFormat Mode
-pkg go/types, type Config struct, UsesCgo bool
pkg math/big, method (*Int) FillBytes([]uint8) []uint8
pkg net, method (*Resolver) LookupIP(context.Context, string, string) ([]IP, error)
pkg net/url, method (*URL) EscapedFragment() string
"path/filepath"
"strings"
"sync"
+ _ "unsafe" // for go:linkname
)
// An Importer provides the context for importing packages from source code.
// build.Context's VFS.
conf.FakeImportC = true
} else {
- conf.UsesCgo = true
+ setUsesCgo(&conf)
file, err := p.cgo(bp)
if err != nil {
return nil, err
}
return filepath.Join(elem...)
}
+
+//go:linkname setUsesCgo go/types.srcimporter_setUsesCgo
+func setUsesCgo(conf *types.Config)
// Do not use casually!
FakeImportC bool
- // If UsesCgo is set, the type checker expects the
+ // If go115UsesCgo is set, the type checker expects the
// _cgo_gotypes.go file generated by running cmd/cgo to be
// provided as a package source file. Qualified identifiers
// referring to package C will be resolved to cgo-provided
// declarations within _cgo_gotypes.go.
//
- // It is an error to set both FakeImportC and UsesCgo.
- UsesCgo bool
+ // It is an error to set both FakeImportC and go115UsesCgo.
+ go115UsesCgo bool
// If Error != nil, it is called with each error found
// during type checking; err has dynamic type Error.
DisableUnusedImportCheck bool
}
+func srcimporter_setUsesCgo(conf *Config) {
+ conf.go115UsesCgo = true
+}
+
// Info holds result type information for a type-checked package.
// Only the information for which a map is provided is collected.
// If the package has type errors, the collected information may
// Files checks the provided files as part of the checker's package.
func (check *Checker) Files(files []*ast.File) error { return check.checkFiles(files) }
-var errBadCgo = errors.New("cannot use FakeImportC and UsesCgo together")
+var errBadCgo = errors.New("cannot use FakeImportC and go115UsesCgo together")
func (check *Checker) checkFiles(files []*ast.File) (err error) {
- if check.conf.FakeImportC && check.conf.UsesCgo {
+ if check.conf.FakeImportC && check.conf.go115UsesCgo {
return errBadCgo
}
}
// no package yet => import it
- if path == "C" && (check.conf.FakeImportC || check.conf.UsesCgo) {
+ if path == "C" && (check.conf.FakeImportC || check.conf.go115UsesCgo) {
imp = NewPackage("C", "C")
imp.fake = true // package scope is not populated
- imp.cgo = check.conf.UsesCgo
+ imp.cgo = check.conf.go115UsesCgo
} else {
// ordinary import
var err error