From 0a40c968490c1369f79b37fb46b34d109b358a97 Mon Sep 17 00:00:00 2001 From: Elliott Stoneham Date: Mon, 16 May 2016 10:23:06 +0100 Subject: [PATCH] Improve nil check in utility.Close --- wordsmith/utility/defclose.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/wordsmith/utility/defclose.go b/wordsmith/utility/defclose.go index 6aafbf47..77e8e44e 100644 --- a/wordsmith/utility/defclose.go +++ b/wordsmith/utility/defclose.go @@ -4,8 +4,12 @@ import "io" import "github.com/documize/community/wordsmith/log" // Close is a convenience function to close an io.Closer, usually in a defer. -func Close(f io.Closer) { - if f != nil && f != io.Closer(nil) { - log.IfErr(f.Close()) +func Close(f interface{}) { + if f != nil { + if ff, ok := f.(io.Closer); ok { + if ff != io.Closer(nil) { + log.IfErr(ff.Close()) + } + } } }