gofix: walk names in ValueSpecs

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4887048
diff --git a/src/cmd/gofix/fix.go b/src/cmd/gofix/fix.go
index c1c5a74..cc85cea 100644
--- a/src/cmd/gofix/fix.go
+++ b/src/cmd/gofix/fix.go
@@ -71,17 +71,21 @@
 		walkBeforeAfter(*n, before, after)
 	case **ast.FuncType:
 		walkBeforeAfter(*n, before, after)
+	case **ast.Ident:
+		walkBeforeAfter(*n, before, after)
 
 	// pointers to slices
-	case *[]ast.Stmt:
+	case *[]ast.Decl:
 		walkBeforeAfter(*n, before, after)
 	case *[]ast.Expr:
 		walkBeforeAfter(*n, before, after)
-	case *[]ast.Decl:
+	case *[]*ast.File:
+		walkBeforeAfter(*n, before, after)
+	case *[]*ast.Ident:
 		walkBeforeAfter(*n, before, after)
 	case *[]ast.Spec:
 		walkBeforeAfter(*n, before, after)
-	case *[]*ast.File:
+	case *[]ast.Stmt:
 		walkBeforeAfter(*n, before, after)
 
 	// These are ordered and grouped to match ../../pkg/go/ast/ast.go
@@ -212,6 +216,7 @@
 	case *ast.ValueSpec:
 		walkBeforeAfter(&n.Type, before, after)
 		walkBeforeAfter(&n.Values, before, after)
+		walkBeforeAfter(&n.Names, before, after)
 	case *ast.TypeSpec:
 		walkBeforeAfter(&n.Type, before, after)
 
@@ -245,6 +250,10 @@
 		for i := range n {
 			walkBeforeAfter(&n[i], before, after)
 		}
+	case []*ast.Ident:
+		for i := range n {
+			walkBeforeAfter(&n[i], before, after)
+		}
 	case []ast.Stmt:
 		for i := range n {
 			walkBeforeAfter(&n[i], before, after)
diff --git a/src/cmd/gofix/url.go b/src/cmd/gofix/url.go
index 047fb19..c1e47bd 100644
--- a/src/cmd/gofix/url.go
+++ b/src/cmd/gofix/url.go
@@ -51,16 +51,6 @@
 			ident.Name = "url_"
 			return
 		}
-		// Find declared identifiers called url that might be confused.
-		// TODO: Why does gofix not walk the Names in a ValueSpec?
-		// TODO: Just a bug; fix later as it will have consequences.
-		if valSpec, ok := n.(*ast.ValueSpec); ok {
-			for _, ident := range valSpec.Names {
-				if ident.Name == "url" {
-					ident.Name = "url_"
-				}
-			}
-		}
 		// Parameter and result names.
 		if fn, ok := n.(*ast.FuncType); ok {
 			fixed = urlDoFields(fn.Params) || fixed