From 6ce37e4d969b65e9af8e7b3bd3989412daf5bee5 Mon Sep 17 00:00:00 2001 From: Blake Mizerany Date: Fri, 15 Mar 2024 07:14:12 -0700 Subject: [PATCH] llm,readline: use errors.Is instead of simple == check (#3161) This fixes some brittle, simple equality checks to use errors.Is. Since go1.13, errors.Is is the idiomatic way to check for errors. Co-authored-by: Jeffrey Morgan --- llm/gguf.go | 3 ++- llm/payload_common.go | 2 +- readline/history.go | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/llm/gguf.go b/llm/gguf.go index 61c55148..f3b62fe6 100644 --- a/llm/gguf.go +++ b/llm/gguf.go @@ -3,6 +3,7 @@ package llm import ( "bytes" "encoding/binary" + "errors" "fmt" "io" "log/slog" @@ -540,7 +541,7 @@ func (llm *GGUFModel) Encode(f *os.File) error { b, err := io.ReadFull(dataFile, data) remaining -= uint64(b) - if err == io.EOF || remaining <= 0 { + if errors.Is(err, io.EOF) || remaining <= 0 { finished = true } else if err != nil { return err diff --git a/llm/payload_common.go b/llm/payload_common.go index 010ba73d..3c9c9886 100644 --- a/llm/payload_common.go +++ b/llm/payload_common.go @@ -113,7 +113,7 @@ func nativeInit() error { libs, err := extractDynamicLibs(payloadsDir, "llama.cpp/build/*/*/*/lib/*") if err != nil { - if err == payloadMissing { + if errors.Is(err, payloadMissing) { slog.Info(fmt.Sprintf("%s", payloadMissing)) return nil } diff --git a/readline/history.go b/readline/history.go index d0138cd9..7b276439 100644 --- a/readline/history.go +++ b/readline/history.go @@ -62,7 +62,7 @@ func (h *History) Init() error { for { line, err := r.ReadString('\n') if err != nil { - if err == io.EOF { + if errors.Is(err, io.EOF) { break } return err