From 4e693d1ec52c86b262ac23f0d6cee6b60fef4fb0 Mon Sep 17 00:00:00 2001 From: Alan Donovan Date: Mon, 9 Feb 2026 10:33:22 -0500 Subject: [PATCH] go/token: add File.String method It returns a brief, unspecified, human-readable description of the File. + test, doc, relnote Fixes #76285 Change-Id: I8b0705cf20eaac095bc9dfba7f1181774544f02c Reviewed-on: https://go-review.googlesource.com/c/go/+/743280 LUCI-TryBot-Result: Go LUCI Reviewed-by: Robert Griesemer Auto-Submit: Alan Donovan --- api/next/76285.txt | 1 + doc/next/6-stdlib/99-minor/go/token/76285.md | 1 + src/go/token/position.go | 5 +++++ src/go/token/position_test.go | 8 ++++++++ 4 files changed, 15 insertions(+) create mode 100644 api/next/76285.txt create mode 100644 doc/next/6-stdlib/99-minor/go/token/76285.md diff --git a/api/next/76285.txt b/api/next/76285.txt new file mode 100644 index 0000000000..afe2314bd4 --- /dev/null +++ b/api/next/76285.txt @@ -0,0 +1 @@ +pkg go/token, method (*File) String() string #76285 diff --git a/doc/next/6-stdlib/99-minor/go/token/76285.md b/doc/next/6-stdlib/99-minor/go/token/76285.md new file mode 100644 index 0000000000..570074214b --- /dev/null +++ b/doc/next/6-stdlib/99-minor/go/token/76285.md @@ -0,0 +1 @@ +[File] now has a String method. diff --git a/src/go/token/position.go b/src/go/token/position.go index 37a468012d..4fb8031eea 100644 --- a/src/go/token/position.go +++ b/src/go/token/position.go @@ -112,6 +112,11 @@ type File struct { infos []lineInfo } +// String returns a brief description of the File. +func (f *File) String() string { + return fmt.Sprintf("%s(%d-%d)", f.Name(), f.Base(), f.End()) +} + // Name returns the file name of file f as registered with AddFile. func (f *File) Name() string { return f.name diff --git a/src/go/token/position_test.go b/src/go/token/position_test.go index 3d02068ebf..7971006ce5 100644 --- a/src/go/token/position_test.go +++ b/src/go/token/position_test.go @@ -651,3 +651,11 @@ func TestFile_End(t *testing.T) { t.Errorf("Base, End = %s, want %s", got, want) } } + +func TestFile_String(t *testing.T) { + f := NewFileSet().AddFile("a.go", 100, 42) + got := f.String() + if want := "a.go(100-142)"; got != want { + t.Errorf("String = %q, want %q", got, want) + } +}