From 90c5660616d7f006ca62adfec49310bf40e3b354 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Mon, 26 Apr 2021 22:32:21 +0900 Subject: [PATCH] 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 --- src/embed/embed.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/embed/embed.go b/src/embed/embed.go index 5dcd7f227d8..f87cc5b9639 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 }