aboutsummaryrefslogtreecommitdiffstats
path: root/gocapturedrefrace.go
diff options
context:
space:
mode:
Diffstat (limited to 'gocapturedrefrace.go')
-rw-r--r--gocapturedrefrace.go20
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
}