From 8bcef611f794272203e05e207259ac8d45d558fb Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Thu, 25 May 2023 20:40:08 +0200 Subject: Report missing signature declaration with multiple return values The previous message which reported when a function's return signature didn't declare an error variable didn't work for functions with multiple return values. I thought about extending it and coming up with generated variable names for the non-error types to be able to support automatic fixing, but this idea ended up being too complicated. Also, I didn't like the idea of an automated fixer coming up with generated variable names, because you'd need to manually rename them anyway. That kind of defeats the purpose of it being automated. Instead, change the diagnostic message to only refer to the error variable and recommend what the declared variable name should be based on the identifier the error was assigned to in the defer. Modify our multiple return value test functions according to this new approach. --- defererr.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'defererr.go') diff --git a/defererr.go b/defererr.go index c6e00fe..d0c6d6f 100644 --- a/defererr.go +++ b/defererr.go @@ -304,7 +304,7 @@ func checkErrorAssignedInDefer( errorReturnField.Pos(), // TODO: Get the actual signature and set the error // name in front of the error type. - "return signature should be '(%s error)'", + "return signature should use named error parameter %s", lhsIdent, ) -- cgit v1.2.3