// 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 implements support functionality for ureader.go.package gcimporterimport ()func assert( bool) {if ! {panic("assertion failed") }}func errorf( string, ...any) {panic(fmt.Sprintf(, ...))}// Synthesize a token.Postype fakeFileSet struct { fset *token.FileSet files map[string]*fileInfo}type fileInfo struct { file *token.File lastline 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.returntoken.Pos(.file.Base() + - 1)}func ( *fakeFileSet) () {fakeLinesOnce.Do(func() {fakeLines = make([]int, maxlines)for := rangefakeLines {fakeLines[] = } })for , := range .files { .file.SetLines(fakeLines[:.lastline]) }}var ( fakeLines []int fakeLinesOnce sync.Once)// See cmd/compile/internal/noder.derivedInfo.type derivedInfo struct { idx pkgbits.Index needed bool}// See cmd/compile/internal/noder.typeInfo.type typeInfo struct { idx pkgbits.Index derived bool}// See cmd/compile/internal/types.SplitVargenSuffix.func splitVargenSuffix( string) (, string) { := len()for > 0 && [-1] >= '0' && [-1] <= '9' { -- }const = "ยท"if >= len() && [-len():] == { -= len()return [:], [:] }return , ""}
The pages are generated with Goldsv0.7.3. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.