diff --git a/gocognit.go b/gocognit.go index 30c770c..a36a693 100644 --- a/gocognit.go +++ b/gocognit.go @@ -4,6 +4,7 @@ import ( "fmt" "go/ast" "go/token" + "strings" "golang.org/x/tools/go/analysis" "golang.org/x/tools/go/analysis/passes/inspect" @@ -59,6 +60,13 @@ func recvString(recv ast.Expr) string { return "*" + recvString(t.X) case *ast.IndexExpr: return recvString(t.X) + "[" + recvString(t.Index) + "]" + case *ast.IndexListExpr: + targs := make([]string, 0, len(t.Indices)) + for _, exp := range t.Indices { + targs = append(targs, recvString(exp)) + } + + return recvString(t.X) + "[" + strings.Join(targs, ", ") + "]" } return "BADRECV" }