type go/token.Pos

382 uses

	go/token (current package)
		position.go#L83: type Pos int
		position.go#L89: const NoPos Pos = 0
		position.go#L92: func (p Pos) IsValid() bool {
		position.go#L131: func (f *File) End() Pos {
		position.go#L132: 	return Pos(f.base + f.size)
		position.go#L233: func (f *File) LineStart(line int) Pos {
		position.go#L242: 	return Pos(f.base + f.lines[line-1])
		position.go#L310: func (f *File) Pos(offset int) Pos {
		position.go#L311: 	return Pos(f.base + f.fixOffset(offset))
		position.go#L323: func (f *File) Offset(p Pos) int {
		position.go#L329: func (f *File) Line(p Pos) int {
		position.go#L383: func (f *File) position(p Pos, adjusted bool) (pos Position) {
		position.go#L395: func (f *File) PositionFor(p Pos, adjusted bool) (pos Position) {
		position.go#L405: func (f *File) Position(p Pos) (pos Position) {
		position.go#L566: func (s *FileSet) file(p Pos) *File {
		position.go#L588: func (s *FileSet) File(p Pos) (f *File) {
		position.go#L599: func (s *FileSet) PositionFor(p Pos, adjusted bool) (pos Position) {
		position.go#L610: func (s *FileSet) Position(p Pos) (pos Position) {

	go/ast
		ast.go#L37: 	Pos() token.Pos // position of first character belonging to the node
		ast.go#L38: 	End() token.Pos // position of first character immediately after the node
		ast.go#L69: 	Slash token.Pos // position of "/" starting the comment
		ast.go#L73: func (c *Comment) Pos() token.Pos { return c.Slash }
		ast.go#L74: func (c *Comment) End() token.Pos { return token.Pos(int(c.Slash) + len(c.Text)) }
		ast.go#L82: func (g *CommentGroup) Pos() token.Pos { return g.List[0].Pos() }
		ast.go#L83: func (g *CommentGroup) End() token.Pos { return g.List[len(g.List)-1].End() }
		ast.go#L209: func (f *Field) Pos() token.Pos {
		ast.go#L219: func (f *Field) End() token.Pos {
		ast.go#L235: 	Opening token.Pos // position of opening parenthesis/brace/bracket, if any
		ast.go#L237: 	Closing token.Pos // position of closing parenthesis/brace/bracket, if any
		ast.go#L240: func (f *FieldList) Pos() token.Pos {
		ast.go#L252: func (f *FieldList) End() token.Pos {
		ast.go#L287: 		From, To token.Pos // position range of bad expression
		ast.go#L292: 		NamePos token.Pos // identifier position
		ast.go#L301: 		Ellipsis token.Pos // position of "..."
		ast.go#L317: 		ValuePos token.Pos   // literal position
		ast.go#L318: 		ValueEnd token.Pos   // position immediately after the literal
		ast.go#L332: 		Lbrace     token.Pos // position of "{"
		ast.go#L334: 		Rbrace     token.Pos // position of "}"
		ast.go#L340: 		Lparen token.Pos // position of "("
		ast.go#L342: 		Rparen token.Pos // position of ")"
		ast.go#L354: 		Lbrack token.Pos // position of "["
		ast.go#L356: 		Rbrack token.Pos // position of "]"
		ast.go#L363: 		Lbrack  token.Pos // position of "["
		ast.go#L365: 		Rbrack  token.Pos // position of "]"
		ast.go#L371: 		Lbrack token.Pos // position of "["
		ast.go#L376: 		Rbrack token.Pos // position of "]"
		ast.go#L384: 		Lparen token.Pos // position of "("
		ast.go#L386: 		Rparen token.Pos // position of ")"
		ast.go#L392: 		Lparen   token.Pos // position of "("
		ast.go#L394: 		Ellipsis token.Pos // position of "..." (token.NoPos if there is no "...")
		ast.go#L395: 		Rparen   token.Pos // position of ")"
		ast.go#L402: 		Star token.Pos // position of "*"
		ast.go#L410: 		OpPos token.Pos   // position of Op
		ast.go#L418: 		OpPos token.Pos   // position of Op
		ast.go#L428: 		Colon token.Pos // position of ":"
		ast.go#L448: 		Lbrack token.Pos // position of "["
		ast.go#L455: 		Struct     token.Pos  // position of "struct" keyword
		ast.go#L464: 		Func       token.Pos  // position of "func" keyword (token.NoPos if there is no "func")
		ast.go#L472: 		Interface  token.Pos  // position of "interface" keyword
		ast.go#L479: 		Map   token.Pos // position of "map" keyword
		ast.go#L486: 		Begin token.Pos // position of "chan" keyword or "<-" (whichever comes first)
		ast.go#L487: 		Arrow token.Pos // position of "<-" (token.NoPos if there is no "<-")
		ast.go#L495: func (x *BadExpr) Pos() token.Pos  { return x.From }
		ast.go#L496: func (x *Ident) Pos() token.Pos    { return x.NamePos }
		ast.go#L497: func (x *Ellipsis) Pos() token.Pos { return x.Ellipsis }
		ast.go#L498: func (x *BasicLit) Pos() token.Pos { return x.ValuePos }
		ast.go#L499: func (x *FuncLit) Pos() token.Pos  { return x.Type.Pos() }
		ast.go#L500: func (x *CompositeLit) Pos() token.Pos {
		ast.go#L506: func (x *ParenExpr) Pos() token.Pos      { return x.Lparen }
		ast.go#L507: func (x *SelectorExpr) Pos() token.Pos   { return x.X.Pos() }
		ast.go#L508: func (x *IndexExpr) Pos() token.Pos      { return x.X.Pos() }
		ast.go#L509: func (x *IndexListExpr) Pos() token.Pos  { return x.X.Pos() }
		ast.go#L510: func (x *SliceExpr) Pos() token.Pos      { return x.X.Pos() }
		ast.go#L511: func (x *TypeAssertExpr) Pos() token.Pos { return x.X.Pos() }
		ast.go#L512: func (x *CallExpr) Pos() token.Pos       { return x.Fun.Pos() }
		ast.go#L513: func (x *StarExpr) Pos() token.Pos       { return x.Star }
		ast.go#L514: func (x *UnaryExpr) Pos() token.Pos      { return x.OpPos }
		ast.go#L515: func (x *BinaryExpr) Pos() token.Pos     { return x.X.Pos() }
		ast.go#L516: func (x *KeyValueExpr) Pos() token.Pos   { return x.Key.Pos() }
		ast.go#L517: func (x *ArrayType) Pos() token.Pos      { return x.Lbrack }
		ast.go#L518: func (x *StructType) Pos() token.Pos     { return x.Struct }
		ast.go#L519: func (x *FuncType) Pos() token.Pos {
		ast.go#L525: func (x *InterfaceType) Pos() token.Pos { return x.Interface }
		ast.go#L526: func (x *MapType) Pos() token.Pos       { return x.Map }
		ast.go#L527: func (x *ChanType) Pos() token.Pos      { return x.Begin }
		ast.go#L529: func (x *BadExpr) End() token.Pos { return x.To }
		ast.go#L530: func (x *Ident) End() token.Pos   { return token.Pos(int(x.NamePos) + len(x.Name)) }
		ast.go#L531: func (x *Ellipsis) End() token.Pos {
		ast.go#L537: func (x *BasicLit) End() token.Pos {
		ast.go#L542: 		return token.Pos(int(x.ValuePos) + len(x.Value))
		ast.go#L546: func (x *FuncLit) End() token.Pos        { return x.Body.End() }
		ast.go#L547: func (x *CompositeLit) End() token.Pos   { return x.Rbrace + 1 }
		ast.go#L548: func (x *ParenExpr) End() token.Pos      { return x.Rparen + 1 }
		ast.go#L549: func (x *SelectorExpr) End() token.Pos   { return x.Sel.End() }
		ast.go#L550: func (x *IndexExpr) End() token.Pos      { return x.Rbrack + 1 }
		ast.go#L551: func (x *IndexListExpr) End() token.Pos  { return x.Rbrack + 1 }
		ast.go#L552: func (x *SliceExpr) End() token.Pos      { return x.Rbrack + 1 }
		ast.go#L553: func (x *TypeAssertExpr) End() token.Pos { return x.Rparen + 1 }
		ast.go#L554: func (x *CallExpr) End() token.Pos       { return x.Rparen + 1 }
		ast.go#L555: func (x *StarExpr) End() token.Pos       { return x.X.End() }
		ast.go#L556: func (x *UnaryExpr) End() token.Pos      { return x.X.End() }
		ast.go#L557: func (x *BinaryExpr) End() token.Pos     { return x.Y.End() }
		ast.go#L558: func (x *KeyValueExpr) End() token.Pos   { return x.Value.End() }
		ast.go#L559: func (x *ArrayType) End() token.Pos      { return x.Elt.End() }
		ast.go#L560: func (x *StructType) End() token.Pos     { return x.Fields.End() }
		ast.go#L561: func (x *FuncType) End() token.Pos {
		ast.go#L567: func (x *InterfaceType) End() token.Pos { return x.Methods.End() }
		ast.go#L568: func (x *MapType) End() token.Pos       { return x.Value.End() }
		ast.go#L569: func (x *ChanType) End() token.Pos      { return x.Value.End() }
		ast.go#L629: 		From, To token.Pos // position range of bad statement
		ast.go#L642: 		Semicolon token.Pos // position of following ";"
		ast.go#L649: 		Colon token.Pos // position of ":"
		ast.go#L663: 		Arrow token.Pos // position of "<-"
		ast.go#L670: 		TokPos token.Pos   // position of Tok
		ast.go#L679: 		TokPos token.Pos   // position of Tok
		ast.go#L686: 		Go   token.Pos // position of "go" keyword
		ast.go#L692: 		Defer token.Pos // position of "defer" keyword
		ast.go#L698: 		Return  token.Pos // position of "return" keyword
		ast.go#L706: 		TokPos token.Pos   // position of Tok
		ast.go#L713: 		Lbrace token.Pos // position of "{"
		ast.go#L715: 		Rbrace token.Pos // position of "}", if any (may be absent due to syntax error)
		ast.go#L720: 		If   token.Pos // position of "if" keyword
		ast.go#L729: 		Case  token.Pos // position of "case" or "default" keyword
		ast.go#L731: 		Colon token.Pos // position of ":"
		ast.go#L737: 		Switch token.Pos  // position of "switch" keyword
		ast.go#L745: 		Switch token.Pos  // position of "switch" keyword
		ast.go#L753: 		Case  token.Pos // position of "case" or "default" keyword
		ast.go#L755: 		Colon token.Pos // position of ":"
		ast.go#L761: 		Select token.Pos  // position of "select" keyword
		ast.go#L767: 		For  token.Pos // position of "for" keyword
		ast.go#L776: 		For        token.Pos   // position of "for" keyword
		ast.go#L778: 		TokPos     token.Pos   // position of Tok; invalid if Key == nil
		ast.go#L780: 		Range      token.Pos   // position of "range" keyword
		ast.go#L788: func (s *BadStmt) Pos() token.Pos        { return s.From }
		ast.go#L789: func (s *DeclStmt) Pos() token.Pos       { return s.Decl.Pos() }
		ast.go#L790: func (s *EmptyStmt) Pos() token.Pos      { return s.Semicolon }
		ast.go#L791: func (s *LabeledStmt) Pos() token.Pos    { return s.Label.Pos() }
		ast.go#L792: func (s *ExprStmt) Pos() token.Pos       { return s.X.Pos() }
		ast.go#L793: func (s *SendStmt) Pos() token.Pos       { return s.Chan.Pos() }
		ast.go#L794: func (s *IncDecStmt) Pos() token.Pos     { return s.X.Pos() }
		ast.go#L795: func (s *AssignStmt) Pos() token.Pos     { return s.Lhs[0].Pos() }
		ast.go#L796: func (s *GoStmt) Pos() token.Pos         { return s.Go }
		ast.go#L797: func (s *DeferStmt) Pos() token.Pos      { return s.Defer }
		ast.go#L798: func (s *ReturnStmt) Pos() token.Pos     { return s.Return }
		ast.go#L799: func (s *BranchStmt) Pos() token.Pos     { return s.TokPos }
		ast.go#L800: func (s *BlockStmt) Pos() token.Pos      { return s.Lbrace }
		ast.go#L801: func (s *IfStmt) Pos() token.Pos         { return s.If }
		ast.go#L802: func (s *CaseClause) Pos() token.Pos     { return s.Case }
		ast.go#L803: func (s *SwitchStmt) Pos() token.Pos     { return s.Switch }
		ast.go#L804: func (s *TypeSwitchStmt) Pos() token.Pos { return s.Switch }
		ast.go#L805: func (s *CommClause) Pos() token.Pos     { return s.Case }
		ast.go#L806: func (s *SelectStmt) Pos() token.Pos     { return s.Select }
		ast.go#L807: func (s *ForStmt) Pos() token.Pos        { return s.For }
		ast.go#L808: func (s *RangeStmt) Pos() token.Pos      { return s.For }
		ast.go#L810: func (s *BadStmt) End() token.Pos  { return s.To }
		ast.go#L811: func (s *DeclStmt) End() token.Pos { return s.Decl.End() }
		ast.go#L812: func (s *EmptyStmt) End() token.Pos {
		ast.go#L818: func (s *LabeledStmt) End() token.Pos { return s.Stmt.End() }
		ast.go#L819: func (s *ExprStmt) End() token.Pos    { return s.X.End() }
		ast.go#L820: func (s *SendStmt) End() token.Pos    { return s.Value.End() }
		ast.go#L821: func (s *IncDecStmt) End() token.Pos {
		ast.go#L824: func (s *AssignStmt) End() token.Pos { return s.Rhs[len(s.Rhs)-1].End() }
		ast.go#L825: func (s *GoStmt) End() token.Pos     { return s.Call.End() }
		ast.go#L826: func (s *DeferStmt) End() token.Pos  { return s.Call.End() }
		ast.go#L827: func (s *ReturnStmt) End() token.Pos {
		ast.go#L833: func (s *BranchStmt) End() token.Pos {
		ast.go#L837: 	return token.Pos(int(s.TokPos) + len(s.Tok.String()))
		ast.go#L839: func (s *BlockStmt) End() token.Pos {
		ast.go#L848: func (s *IfStmt) End() token.Pos {
		ast.go#L854: func (s *CaseClause) End() token.Pos {
		ast.go#L860: func (s *SwitchStmt) End() token.Pos     { return s.Body.End() }
		ast.go#L861: func (s *TypeSwitchStmt) End() token.Pos { return s.Body.End() }
		ast.go#L862: func (s *CommClause) End() token.Pos {
		ast.go#L868: func (s *SelectStmt) End() token.Pos { return s.Body.End() }
		ast.go#L869: func (s *ForStmt) End() token.Pos    { return s.Body.End() }
		ast.go#L870: func (s *RangeStmt) End() token.Pos  { return s.Body.End() }
		ast.go#L914: 		EndPos  token.Pos     // end of spec (overrides Path.Pos if nonzero)
		ast.go#L933: 		Assign     token.Pos     // position of '=', if any
		ast.go#L941: func (s *ImportSpec) Pos() token.Pos {
		ast.go#L947: func (s *ValueSpec) Pos() token.Pos { return s.Names[0].Pos() }
		ast.go#L948: func (s *TypeSpec) Pos() token.Pos  { return s.Name.Pos() }
		ast.go#L950: func (s *ImportSpec) End() token.Pos {
		ast.go#L957: func (s *ValueSpec) End() token.Pos {
		ast.go#L966: func (s *TypeSpec) End() token.Pos { return s.Type.End() }
		ast.go#L981: 		From, To token.Pos // position range of bad declaration
		ast.go#L997: 		TokPos token.Pos     // position of Tok
		ast.go#L999: 		Lparen token.Pos     // position of '(', if any
		ast.go#L1001: 		Rparen token.Pos // position of ')', if any
		ast.go#L1016: func (d *BadDecl) Pos() token.Pos  { return d.From }
		ast.go#L1017: func (d *GenDecl) Pos() token.Pos  { return d.TokPos }
		ast.go#L1018: func (d *FuncDecl) Pos() token.Pos { return d.Type.Pos() }
		ast.go#L1020: func (d *BadDecl) End() token.Pos { return d.To }
		ast.go#L1021: func (d *GenDecl) End() token.Pos {
		ast.go#L1027: func (d *FuncDecl) End() token.Pos {
		ast.go#L1066: 	Package token.Pos     // position of "package" keyword
		ast.go#L1070: 	FileStart, FileEnd token.Pos       // start and end of entire file
		ast.go#L1082: func (f *File) Pos() token.Pos { return f.Package }
		ast.go#L1088: func (f *File) End() token.Pos {
		ast.go#L1106: func (p *Package) Pos() token.Pos { return token.NoPos }
		ast.go#L1107: func (p *Package) End() token.Pos { return token.NoPos }
		commentmap.go#L102: func (s *nodeStack) pop(pos token.Pos) (top Node) {
		directive.go#L38: 	Slash token.Pos
		directive.go#L42: 	ArgsPos token.Pos
		directive.go#L56: func ParseDirective(pos token.Pos, c string) (Directive, bool) {
		directive.go#L98: func (d *Directive) Pos() token.Pos { return d.Slash }
		directive.go#L99: func (d *Directive) End() token.Pos { return token.Pos(int(d.ArgsPos) + len(d.Args)) }
		directive.go#L107: 	Pos token.Pos
		directive.go#L154: 	pos token.Pos
		directive.go#L158: 	s.pos += token.Pos(n)
		filter.go#L357: 	var minPos, maxPos token.Pos
		filter.go#L381: 	var pos token.Pos
		import.go#L66: func lineAt(fset *token.FileSet, pos token.Pos) int {
		import.go#L103: 	Start token.Pos
		import.go#L104: 	End   token.Pos
		import.go#L132: 	var end token.Pos
		import.go#L252: func updateBasicLitPos(lit *BasicLit, pos token.Pos) {
		print.go#L244: 		case token.Pos:
		resolve.go#L21: func (p *pkgBuilder) error(pos token.Pos, msg string) {
		resolve.go#L25: func (p *pkgBuilder) errorf(pos token.Pos, format string, args ...any) {
		scope.go#L103: func (obj *Object) Pos() token.Pos {

	go/build
		build.go#L1429: 	pos  token.Pos
		read.go#L416: func parseGoEmbed(fset *token.FileSet, pos token.Pos, comment string) ([]fileEmbed, error) {

	go/doc
		doc.go#L94: 	Pos, End token.Pos // position range of the comment containing the marker
		example.go#L207: 	groupStart := func(s *ast.ImportSpec) token.Pos {
		example.go#L508: func findImportGroupStarts(imps []*ast.ImportSpec) []token.Pos {
		example.go#L510: 	groupStarts := make([]token.Pos, len(startImps))
		example.go#L529: 	prevEnd := token.Pos(-2)
		example.go#L729: func updateBasicLitPos(lit *ast.BasicLit, pos token.Pos) {
		exports.go#L253: func copyConstType(typ ast.Expr, pos token.Pos) ast.Expr {

	go/internal/scannerhooks
		hooks.go#L11: var StringEnd func(scanner any) token.Pos

	go/parser
		interface.go#L122: 		f.FileStart = token.Pos(file.Base())
		parser.go#L56: 	pos       token.Pos   // token position
		parser.go#L59: 	stringEnd token.Pos   // position immediately after token; STRING only
		parser.go#L65: 	syncPos token.Pos // last synchronization position
		parser.go#L180: func (p *parser) lineFor(pos token.Pos) int {
		parser.go#L276: 	pos token.Pos
		parser.go#L280: func (p *parser) error(pos token.Pos, msg string) {
		parser.go#L303: func (p *parser) errorExpected(pos token.Pos, msg string) {
		parser.go#L321: func (p *parser) expect(tok token.Token) token.Pos {
		parser.go#L332: func (p *parser) expect2(tok token.Token) (pos token.Pos) {
		parser.go#L344: func (p *parser) expectClosing(tok token.Token, context string) token.Pos {
		parser.go#L573: func (p *parser) parseArrayType(lbrack token.Pos, len ast.Expr) *ast.ArrayType {
		parser.go#L944: 			var errPos token.Pos
		parser.go#L960: 		var errPos token.Pos // left-most error position (or invalid)
		parser.go#L1323: 	var arrow token.Pos
		parser.go#L1483: 		end := p.pos + token.Pos(len(p.lit))
		parser.go#L1570: 	var colons [N - 1]token.Pos
		parser.go#L1638: 	var ellipsis token.Pos
		parser.go#L2121: 		pos token.Pos
		parser.go#L2592: func (p *parser) parseGenericType(spec *ast.TypeSpec, openPos token.Pos, name0 *ast.Ident, typ0 ast.Expr) {
		parser.go#L2760: 	var lparen, rparen token.Pos
		parser.go#L2936: 	var declErr func(token.Pos, string)
		parser.go#L2948: func packIndexExpr(x ast.Expr, lbrack token.Pos, exprs []ast.Expr, rbrack token.Pos) ast.Expr {
		resolver.go#L21: func resolveFile(file *ast.File, handle *token.File, declErr func(token.Pos, string)) {
		resolver.go#L49: 			pos := ident.Obj.Decl.(interface{ Pos() token.Pos }).Pos()
		resolver.go#L61: 	declErr func(token.Pos, string)
		resolver.go#L82: 		case token.Pos:
		resolver.go#L89: func (r *resolver) openScope(pos token.Pos) {

	go/printer
		nodes.go#L126: func (p *printer) exprList(prev0 token.Pos, list []ast.Expr, depth int, mode exprListMode, next0 token.Pos, isIncomplete bool) {
		nodes.go#L1913: func (p *printer) distanceFrom(startPos token.Pos, startOutCol int) int {
		printer.go#L95: 	cachedPos  token.Pos
		printer.go#L184: func (p *printer) posFor(pos token.Pos) token.Position {
		printer.go#L189: func (p *printer) lineFor(pos token.Pos) int {
		printer.go#L885: func (p *printer) setPos(pos token.Pos) {

	go/scanner
		scanner.go#L44: 	nlPos      token.Pos // position of newline in preceding comment
		scanner.go#L45: 	stringEnd  token.Pos // end position; defined only for STRING tokens
		scanner.go#L53: 	scannerhooks.StringEnd = func(scanner any) token.Pos {
		scanner.go#L810: func (s *Scanner) Scan() (pos token.Pos, tok token.Token, lit string) {
		scanner.go#L863: 			s.stringEnd = pos + token.Pos(len(lit))
		scanner.go#L873: 			s.stringEnd = pos + token.Pos(rawLen)

	go/types
		alias.go#L154: func (check *Checker) newAliasInstance(pos token.Pos, orig *Alias, targs []Type, expanding *Named, ctxt *Context) *Alias {
		api.go#L53: 	Pos  token.Pos      // error position
		api.go#L63: 	go116start token.Pos
		api.go#L64: 	go116end   token.Pos
		call.go#L34: func (check *Checker) funcInst(T *target, pos token.Pos, x *operand, ix *indexedExpr, infer bool) []Type {
		call.go#L132: func (check *Checker) instantiateSignature(pos token.Pos, expr ast.Expr, typ *Signature, targs []Type, xlist []ast.Expr) (res *Signature) {
		check.go#L21: var nopos token.Pos
		check.go#L89: 	exprPos token.Pos // if valid, identifiers are looked up as if at position pos (used by CheckExpr, Eval)
		const.go#L22: func (check *Checker) overflow(x *operand, opPos token.Pos) {
		decl.go#L16: func (check *Checker) declare(scope *Scope, id *ast.Ident, obj Object, pos token.Pos) {
		decl.go#L713: func (check *Checker) declareTypeParam(name *ast.Ident, scopePos token.Pos) *TypeParam {
		errors.go#L231: 	Pos() token.Pos
		errors.go#L261: type atPos token.Pos
		errors.go#L263: func (s atPos) Pos() token.Pos {
		errors.go#L264: 	return token.Pos(s)
		errors.go#L273: 	start, pos, end token.Pos
		errors.go#L276: func (e posSpan) Pos() token.Pos {
		errors.go#L283: func inNode(node ast.Node, pos token.Pos) posSpan {
		eval.go#L24: func Eval(fset *token.FileSet, pkg *Package, pos token.Pos, expr string) (_ TypeAndValue, err error) {
		eval.go#L56: func CheckExpr(fset *token.FileSet, pkg *Package, pos token.Pos, expr ast.Expr, info *Info) (err error) {
		expr.go#L88: func opPos(x ast.Expr) token.Pos {
		expr.go#L779: func (check *Checker) binary(x *operand, e ast.Expr, lhs, rhs ast.Expr, op token.Token, opPos token.Pos) {
		format.go#L38: 		case token.Pos:
		format.go#L101: func (check *Checker) trace(pos token.Pos, format string, args ...any) {
		index.go#L465: 	lbrack  token.Pos  // position of "["
		index.go#L467: 	rbrack  token.Pos  // position of "]"
		index.go#L470: func (x *indexedExpr) Pos() token.Pos {
		infer.go#L471: func (check *Checker) renameTParams(pos token.Pos, tparams []*TypeParam, typ Type) ([]*TypeParam, Type) {
		instantiate.go#L90: func (check *Checker) instance(pos token.Pos, orig genericType, targs []Type, expanding *Named, ctxt *Context) (res Type) {
		instantiate.go#L186: func (check *Checker) validateTArgLen(pos token.Pos, name string, want, got int) bool {
		instantiate.go#L207: func (check *Checker) verify(pos token.Pos, tparams []*TypeParam, targs []Type, ctxt *Context) (int, error) {
		interface.go#L21: 	embedPos  *[]token.Pos // positions of embedded elements; or nil (for error messages) - use pointer to save space
		interface.go#L160: 	addEmbedded := func(pos token.Pos, typ Type) {
		interface.go#L163: 			ityp.embedPos = new([]token.Pos)
		labels.go#L100: 		varDeclPos         token.Pos
		labels.go#L107: 	recordVarDecl := func(pos token.Pos) {
		mono.go#L82: 	pos token.Pos
		mono.go#L176: func (w *monoGraph) recordInstance(pkg *Package, pos token.Pos, tparams []*TypeParam, targs []Type, xlist []ast.Expr) {
		mono.go#L187: func (w *monoGraph) assign(pkg *Package, pos token.Pos, tpar *TypeParam, targ Type) {
		mono.go#L332: func (w *monoGraph) addEdge(dst, src, weight int, pos token.Pos, typ Type) {
		named.go#L341: func (check *Checker) newNamedInstance(pos token.Pos, orig *Named, targs []Type, expanding *Named) *Named {
		object.go#L31: 	Pos() token.Pos // position of object identifier in declaration
		object.go#L63: 	scopePos() token.Pos
		object.go#L66: 	setScopePos(pos token.Pos)
		object.go#L97: 	pos       token.Pos
		object.go#L102: 	scopePos_ token.Pos
		object.go#L110: func (obj *object) Pos() token.Pos { return obj.pos }
		object.go#L132: func (obj *object) scopePos() token.Pos { return obj.scopePos_ }
		object.go#L137: func (obj *object) setScopePos(pos token.Pos) { obj.scopePos_ = pos }
		object.go#L212: func NewPkgName(pos token.Pos, pkg *Package, name string, imported *Package) *PkgName {
		object.go#L228: func NewConst(pos token.Pos, pkg *Package, name string, typ Type, val constant.Value) *Const {
		object.go#L253: func NewTypeName(pos token.Pos, pkg *Package, name string, typ Type) *TypeName {
		object.go#L259: func _NewTypeNameLazy(pos token.Pos, pkg *Package, name string, load func(*Named) ([]*TypeParam, Type, []*Func, []func())) *TypeName {
		object.go#L344: func NewVar(pos token.Pos, pkg *Package, name string, typ Type) *Var {
		object.go#L352: func NewParam(pos token.Pos, pkg *Package, name string, typ Type) *Var {
		object.go#L359: func NewField(pos token.Pos, pkg *Package, name string, typ Type, embedded bool) *Var {
		object.go#L367: func newVar(kind VarKind, pos token.Pos, pkg *Package, name string, typ Type) *Var {
		object.go#L408: func NewFunc(pos token.Pos, pkg *Package, name string, sig *Signature) *Func {
		object.go#L499: func NewLabel(pos token.Pos, pkg *Package, name string) *Label {
		operand.go#L69: func (x *operand) Pos() token.Pos {
		resolver.go#L250: 			pos, end = token.Pos(f.Base()), f.End()
		scope.go#L30: 	pos, end token.Pos         // scope extent; may be invalid
		scope.go#L37: func NewScope(parent *Scope, pos, end token.Pos, comment string) *Scope {
		scope.go#L215: func (*lazyObject) Pos() token.Pos                     { panic("unreachable") }
		scope.go#L227: func (*lazyObject) scopePos() token.Pos                { panic("unreachable") }
		scope.go#L228: func (*lazyObject) setScopePos(token.Pos)              { panic("unreachable") }
		scope2.go#L24: func (s *Scope) LookupParent(name string, pos token.Pos) (*Scope, Object) {
		scope2.go#L37: func (s *Scope) Pos() token.Pos { return s.pos }
		scope2.go#L38: func (s *Scope) End() token.Pos { return s.end }
		scope2.go#L43: func (s *Scope) Contains(pos token.Pos) bool {
		scope2.go#L52: func (s *Scope) Innermost(pos token.Pos) *Scope {
		signature.go#L210: func (check *Checker) collectRecv(rparam *ast.Field, scopePos token.Pos) (*Var, *TypeParamList) {
		signature.go#L464: func (check *Checker) declareParams(names []*ast.Ident, params []*Var, scopePos token.Pos) {
		stmt.go#L232: 		pos token.Pos
		struct.go#L200: func (check *Checker) declareInSet(oset *objset, pos token.Pos, obj Object) bool {
		subst.go#L58: func (check *Checker) subst(pos token.Pos, typ Type, smap substMap, expanding *Named, ctxt *Context) Type {
		subst.go#L85: 	pos       token.Pos
		typeset.go#L155: func computeInterfaceTypeSet(check *Checker, pos token.Pos, ityp *Interface) *_TypeSet {
		typeset.go#L222: 	mpos := make(map[*Func]token.Pos) // method specification or method embedding position, for good error messages
		typeset.go#L223: 	addMethod := func(pos token.Pos, m *Func, explicit bool) {
		typeset.go#L264: 		var pos token.Pos // embedding position
		typeset.go#L375: func computeUnionTypeSet(check *Checker, unionSets map[*Union]*_TypeSet, pos token.Pos, utyp *Union) *_TypeSet {
		util.go#L28: func cmpPos(p, q token.Pos) int { return int(p - q) }
		util.go#L50: func startPos(n ast.Node) token.Pos { return n.Pos() }
		util.go#L53: func endPos(n ast.Node) token.Pos { return n.End() }
		validtype.go#L30: func (check *Checker) validType0(pos token.Pos, typ Type, nest, path []*Named) bool {

	go.pact.im/x/plumb/internal/diag
		diag.go#L94: func PosIn(fset *token.FileSet, p token.Pos) token.Position {

	golang.org/x/tools/go/ast/inspector
		cursor.go#L488: func (c Cursor) FindByPos(start, end token.Pos) (Cursor, bool) {
		cursor.go#L504: 			var nodeEnd token.Pos

	golang.org/x/tools/internal/aliases
		aliases.go#L14: func New(pos token.Pos, pkg *types.Package, name string, rhs types.Type, tparams []*types.TypeParam) *types.TypeName {

	golang.org/x/tools/internal/gcimporter
		bimport.go#L36: func (s *fakeFileSet) pos(file string, line, column int) token.Pos {
		bimport.go#L56: 	return token.Pos(f.file.Base() + line - 1)
		iexport.go#L641: func (p *iexporter) fileIndexAndOffset(file *token.File, pos token.Pos) (uint64, uint64) {
		iexport.go#L854: func (w *exportWriter) pos(pos token.Pos) {
		iexport.go#L868: func (w *exportWriter) posV2(pos token.Pos) {
		iexport.go#L879: func (w *exportWriter) posV1(pos token.Pos) {
		iexport.go#L913: func (w *exportWriter) posV0(pos token.Pos) {
		iimport.go#L816: func (r *importReader) pos() token.Pos {
		iimport.go#L857: func (r *importReader) posv2() token.Pos {
		ureader.go#L198: func (r *reader) pos() token.Pos {

	golang.org/x/tools/internal/typeparams
		common.go#L30: func UnpackIndexExpr(n ast.Node) (x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) {
		common.go#L43: func PackIndexExpr(x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) ast.Expr {

	golang.org/x/tools/internal/typesinternal
		types.go#L54: func ErrorCodeStartEnd(err types.Error) (code ErrorCode, start, end token.Pos, ok bool) {
		types.go#L65: 	return ErrorCode(data[0]), token.Pos(data[1]), token.Pos(data[2]), true