From 22b36b5d90efc312bfa33fce1613a29775dcb5c4 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sun, 21 May 2023 17:01:09 +0200 Subject: Explore inspecting `return` statements for error values --- defererr.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'defererr.go') diff --git a/defererr.go b/defererr.go index f8c485e..57e0ce8 100644 --- a/defererr.go +++ b/defererr.go @@ -159,6 +159,20 @@ func checkFunctions(pass *analysis.Pass, node ast.Node) { } // TODO: Check whether returnStmt uses error variable. + fmt.Printf("returnStmt: %#v\n", returnStmt) + + if returnStmt.Results == nil { + return true + } + + fmt.Printf("returnStmt.Results: %#v\n", returnStmt.Results) + + for _, expr := range returnStmt.Results { + fmt.Printf("returnStmt expr: %#v\n", expr) + } + + // TODO: Get returnStmt.Results[error index from function result signature] + // If not variable and name not [error variable name from defer], report diagnostic return true }, -- cgit v1.2.3