summaryrefslogtreecommitdiff
path: root/src/cmd/fix/iocopyn.go
blob: 720f3c68902bb1668a652b6540ac7ca34fdec9d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// 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(ioCopyNFix)
}

var ioCopyNFix = fix{
	"iocopyn",
	"2011-09-30",
	ioCopyN,
	`Rename io.Copyn to io.CopyN.

http://codereview.appspot.com/5157045
`,
}

func ioCopyN(f *ast.File) bool {
	if !imports(f, "io") {
		return false
	}

	fixed := false
	walk(f, func(n interface{}) {
		if expr, ok := n.(ast.Expr); ok {
			if isPkgDot(expr, "io", "Copyn") {
				expr.(*ast.SelectorExpr).Sel.Name = "CopyN"
				fixed = true
				return
			}
		}
	})
	return fixed
}