diff options
Diffstat (limited to 'gocapturedrefrace.go')
-rw-r--r-- | gocapturedrefrace.go | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/gocapturedrefrace.go b/gocapturedrefrace.go index cab0b4f..5be3656 100644 --- a/gocapturedrefrace.go +++ b/gocapturedrefrace.go @@ -180,9 +180,9 @@ func findLocalVarDeclarations( } case *ast.GenDecl: - decl := varDeclaration(node) - if decl != nil { - declarations = append(declarations, decl) + decls := varDeclarations(node) + if decls != nil { + declarations = append(declarations, decls...) } } @@ -193,23 +193,25 @@ func findLocalVarDeclarations( return declarations } -// varDeclaration returns the identifier corresponding to variable declarations -// in decl, or nil if decl is not a variable declaration. -func varDeclaration(decl *ast.GenDecl) *ast.Ident { +// varDeclarations returns the identifiers corresponding to variable +// declarations in decl, or nil if decl is not a variable declaration. +func varDeclarations(decl *ast.GenDecl) (declarations []*ast.Ident) { if decl.Tok != token.VAR { return nil } + declarations = []*ast.Ident{} + for _, spec := range decl.Specs { valueSpec, ok := spec.(*ast.ValueSpec) if !ok { - return nil + return declarations } for _, ident := range valueSpec.Names { - return ident + declarations = append(declarations, ident) } } - return nil + return declarations } |