From: Hajime Hoshi Date: Mon, 26 Apr 2021 13:32:21 +0000 (+0900) Subject: embed: guarantee the returned file of FS.Open implements io.Seeker X-Git-Tag: go1.18beta1~1388 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=90c5660616;p=gostls13.git embed: guarantee the returned file of FS.Open implements io.Seeker Fixes golang/go#45745 Change-Id: Ib49a9605a38074f544a5d28116862e191cea8c0f Reviewed-on: https://go-review.googlesource.com/c/go/+/313352 Run-TryBot: Hajime Hoshi TryBot-Result: Go Bot Reviewed-by: Ian Lance Taylor Trust: Than McIntosh --- diff --git a/src/embed/embed.go b/src/embed/embed.go index 5dcd7f227d..f87cc5b963 100644 --- a/src/embed/embed.go +++ b/src/embed/embed.go @@ -291,6 +291,8 @@ func (f FS) readDir(dir string) []file { } // Open opens the named file for reading and returns it as an fs.File. +// +// The returned file implements io.Seeker when the file is not a directory. func (f FS) Open(name string) (fs.File, error) { file := f.lookup(name) if file == nil { @@ -338,6 +340,10 @@ type openFile struct { offset int64 // current read offset } +var ( + _ io.Seeker = (*openFile)(nil) +) + func (f *openFile) Close() error { return nil } func (f *openFile) Stat() (fs.FileInfo, error) { return f.f, nil }