diff options
Diffstat (limited to 'src/cmd/fix/url.go')
| -rw-r--r-- | src/cmd/fix/url.go | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/src/cmd/fix/url.go b/src/cmd/fix/url.go deleted file mode 100644 index 49aac739b..000000000 --- a/src/cmd/fix/url.go +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package main - -import "go/ast" - -func init() { - register(urlFix) -} - -var urlFix = fix{ - "url", - "2011-08-17", - url, - `Move the URL pieces of package http into a new package, url. - -http://codereview.appspot.com/4893043 -`, -} - -var urlRenames = []struct{ in, out string }{ - {"URL", "URL"}, - {"ParseURL", "Parse"}, - {"ParseURLReference", "ParseWithReference"}, - {"ParseQuery", "ParseQuery"}, - {"Values", "Values"}, - {"URLEscape", "QueryEscape"}, - {"URLUnescape", "QueryUnescape"}, - {"URLError", "Error"}, - {"URLEscapeError", "EscapeError"}, -} - -func url(f *ast.File) bool { - if imports(f, "url") || !imports(f, "http") { - return false - } - - fixed := false - - // Update URL code. - urlWalk := func(n interface{}) { - // Is it an identifier? - if ident, ok := n.(*ast.Ident); ok && ident.Name == "url" { - ident.Name = "url_" - return - } - // Parameter and result names. - if fn, ok := n.(*ast.FuncType); ok { - fixed = urlDoFields(fn.Params) || fixed - fixed = urlDoFields(fn.Results) || fixed - } - } - - // Fix up URL code and add import, at most once. - fix := func() { - if fixed { - return - } - addImport(f, "url") - walkBeforeAfter(f, urlWalk, nop) - fixed = true - } - - walk(f, func(n interface{}) { - // Rename functions and methods. - if expr, ok := n.(ast.Expr); ok { - for _, s := range urlRenames { - if isPkgDot(expr, "http", s.in) { - fix() - expr.(*ast.SelectorExpr).X.(*ast.Ident).Name = "url" - expr.(*ast.SelectorExpr).Sel.Name = s.out - return - } - } - } - }) - - // Remove the http import if no longer needed. - if fixed && !usesImport(f, "http") { - deleteImport(f, "http") - } - - return fixed -} - -func urlDoFields(list *ast.FieldList) (fixed bool) { - if list == nil { - return - } - for _, field := range list.List { - for _, ident := range field.Names { - if ident.Name == "url" { - fixed = true - ident.Name = "url_" - } - } - } - return -} |
