summaryrefslogtreecommitdiff
path: root/src/cmd/fix/httputil.go
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2012-02-29 11:23:13 +0100
committerOndřej Surý <ondrej@sury.org>2012-02-29 11:23:13 +0100
commitb6d7097a0d6072199f2cd74d67404890697cf78a (patch)
treea2193c528a79fd5606507568859ee5067c6b86e4 /src/cmd/fix/httputil.go
parent4cecda6c347bd6902b960c6a35a967add7070b0d (diff)
downloadgolang-b6d7097a0d6072199f2cd74d67404890697cf78a.tar.gz
Imported Upstream version 2012.02.22upstream-weekly/2012.02.22
Diffstat (limited to 'src/cmd/fix/httputil.go')
-rw-r--r--src/cmd/fix/httputil.go63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/cmd/fix/httputil.go b/src/cmd/fix/httputil.go
new file mode 100644
index 000000000..86c42e160
--- /dev/null
+++ b/src/cmd/fix/httputil.go
@@ -0,0 +1,63 @@
+// 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(httputilFix)
+}
+
+var httputilFix = fix{
+ "httputil",
+ "2011-11-18",
+ httputil,
+ `Move some functions in http package into httputil package.
+
+http://codereview.appspot.com/5336049
+`,
+}
+
+var httputilFuncs = []string{
+ "DumpRequest",
+ "DumpRequestOut",
+ "DumpResponse",
+ "NewChunkedReader",
+ "NewChunkedWriter",
+ "NewClientConn",
+ "NewProxyClientConn",
+ "NewServerConn",
+ "NewSingleHostReverseProxy",
+}
+
+func httputil(f *ast.File) bool {
+ if imports(f, "net/http/httputil") {
+ return false
+ }
+
+ fixed := false
+
+ walk(f, func(n interface{}) {
+ // Rename package name.
+ if expr, ok := n.(ast.Expr); ok {
+ for _, s := range httputilFuncs {
+ if isPkgDot(expr, "http", s) {
+ if !fixed {
+ addImport(f, "net/http/httputil")
+ fixed = true
+ }
+ expr.(*ast.SelectorExpr).X.(*ast.Ident).Name = "httputil"
+ }
+ }
+ }
+ })
+
+ // Remove the net/http import if no longer needed.
+ if fixed && !usesImport(f, "net/http") {
+ deleteImport(f, "net/http")
+ }
+
+ return fixed
+}