Merge pull request #1199 from src-d/clean-up

*: code quality improvements
diff --git a/blame.go b/blame.go
index adb72d5..f610851 100644
--- a/blame.go
+++ b/blame.go
@@ -193,7 +193,7 @@
 		// this first commit.
 		if i == 0 {
 			for j := 0; j < nLines; j++ {
-				b.graph[i][j] = (*object.Commit)(b.revs[i])
+				b.graph[i][j] = b.revs[i]
 			}
 		} else {
 			// if this is not the first commit, then assign to the old
@@ -211,7 +211,7 @@
 	fVs := b.graph[i]
 	result := make([]*object.Commit, 0, len(fVs))
 	for _, v := range fVs {
-		c := object.Commit(*v)
+		c := *v
 		result = append(result, &c)
 	}
 	return result
@@ -234,7 +234,7 @@
 				b.graph[c][dl] = b.graph[p][sl]
 			case hunks[h].Type == 1:
 				dl++
-				b.graph[c][dl] = (*object.Commit)(b.revs[c])
+				b.graph[c][dl] = b.revs[c]
 			case hunks[h].Type == -1:
 				sl++
 			default:
diff --git a/config/branch.go b/config/branch.go
index af61bbb..20dde6e 100644
--- a/config/branch.go
+++ b/config/branch.go
@@ -72,7 +72,7 @@
 	if b.Rebase == "" {
 		b.raw.RemoveOption(rebaseKey)
 	} else {
-		b.raw.SetOption(rebaseKey, string(b.Rebase))
+		b.raw.SetOption(rebaseKey, b.Rebase)
 	}
 
 	return b.raw
diff --git a/plumbing/format/commitgraph/encoder.go b/plumbing/format/commitgraph/encoder.go
index a06871c..615e833 100644
--- a/plumbing/format/commitgraph/encoder.go
+++ b/plumbing/format/commitgraph/encoder.go
@@ -24,8 +24,6 @@
 

 // Encode writes an index into the commit-graph file

 func (e *Encoder) Encode(idx Index) error {

-	var err error

-

 	// Get all the hashes in the input index

 	hashes := idx.Hashes()

 

@@ -39,26 +37,26 @@
 		chunkSizes = append(chunkSizes, uint64(extraEdgesCount)*4)

 	}

 

-	if err = e.encodeFileHeader(len(chunkSignatures)); err != nil {

+	if err := e.encodeFileHeader(len(chunkSignatures)); err != nil {

 		return err

 	}

-	if err = e.encodeChunkHeaders(chunkSignatures, chunkSizes); err != nil {

+	if err := e.encodeChunkHeaders(chunkSignatures, chunkSizes); err != nil {

 		return err

 	}

-	if err = e.encodeFanout(fanout); err != nil {

+	if err := e.encodeFanout(fanout); err != nil {

 		return err

 	}

-	if err = e.encodeOidLookup(hashes); err != nil {

+	if err := e.encodeOidLookup(hashes); err != nil {

 		return err

 	}

 	if extraEdges, err := e.encodeCommitData(hashes, hashToIndex, idx); err == nil {

 		if err = e.encodeExtraEdges(extraEdges); err != nil {

 			return err

 		}

-	}

-	if err != nil {

+	} else {

 		return err

 	}

+

 	return e.encodeChecksum()

 }

 

diff --git a/plumbing/format/commitgraph/file.go b/plumbing/format/commitgraph/file.go
index 175d279..1f82abd 100644
--- a/plumbing/format/commitgraph/file.go
+++ b/plumbing/format/commitgraph/file.go
@@ -249,7 +249,7 @@
 // Hashes returns all the hashes that are available in the index

 func (fi *fileIndex) Hashes() []plumbing.Hash {

 	hashes := make([]plumbing.Hash, fi.fanout[0xff])

-	for i := 0; i < int(fi.fanout[0xff]); i++ {

+	for i := 0; i < fi.fanout[0xff]; i++ {

 		offset := fi.oidLookupOffset + int64(i)*20

 		if n, err := fi.reader.ReadAt(hashes[i][:], offset); err != nil || n < 20 {

 			return nil

diff --git a/plumbing/format/commitgraph/memory.go b/plumbing/format/commitgraph/memory.go
index a4a96e9..f5afd4c 100644
--- a/plumbing/format/commitgraph/memory.go
+++ b/plumbing/format/commitgraph/memory.go
@@ -31,7 +31,7 @@
 // GetCommitDataByIndex gets the commit node from the commit graph using index

 // obtained from child node, if available

 func (mi *MemoryIndex) GetCommitDataByIndex(i int) (*CommitData, error) {

-	if int(i) >= len(mi.commitData) {

+	if i >= len(mi.commitData) {

 		return nil, plumbing.ErrObjectNotFound

 	}

 

diff --git a/plumbing/format/diff/unified_encoder.go b/plumbing/format/diff/unified_encoder.go
index 8bd6d8a..169242d 100644
--- a/plumbing/format/diff/unified_encoder.go
+++ b/plumbing/format/diff/unified_encoder.go
@@ -94,7 +94,7 @@
 	isEmpty := message == ""
 	hasSuffix := strings.HasSuffix(message, "\n")
 	if !isEmpty && !hasSuffix {
-		message = message + "\n"
+		message += "\n"
 	}
 
 	e.buf.WriteString(message)
diff --git a/plumbing/format/gitattributes/pattern.go b/plumbing/format/gitattributes/pattern.go
index c5ca0c7..d961aba 100644
--- a/plumbing/format/gitattributes/pattern.go
+++ b/plumbing/format/gitattributes/pattern.go
@@ -66,7 +66,7 @@
 			doublestar = true
 		}
 
-		switch true {
+		switch {
 		case strings.Contains(pattern[0], "**"):
 			return false
 
diff --git a/plumbing/format/idxfile/decoder.go b/plumbing/format/idxfile/decoder.go
index 5b92782..9e9c176 100644
--- a/plumbing/format/idxfile/decoder.go
+++ b/plumbing/format/idxfile/decoder.go
@@ -110,10 +110,6 @@
 			continue
 		}
 
-		if buckets < 0 {
-			return ErrMalformedIdxFile
-		}
-
 		idx.FanoutMapping[k] = len(idx.Names)
 
 		nameLen := int(buckets * objectIDLength)
diff --git a/plumbing/format/idxfile/writer.go b/plumbing/format/idxfile/writer.go
index aa919e7..fcc78c5 100644
--- a/plumbing/format/idxfile/writer.go
+++ b/plumbing/format/idxfile/writer.go
@@ -147,7 +147,7 @@
 		idx.Offset32[bucket] = append(idx.Offset32[bucket], buf.Bytes()...)
 
 		buf.Truncate(0)
-		binary.WriteUint32(buf, uint32(o.CRC32))
+		binary.WriteUint32(buf, o.CRC32)
 		idx.CRC32[bucket] = append(idx.CRC32[bucket], buf.Bytes()...)
 	}
 
diff --git a/plumbing/format/packfile/scanner_test.go b/plumbing/format/packfile/scanner_test.go
index a401d6d..3078477 100644
--- a/plumbing/format/packfile/scanner_test.go
+++ b/plumbing/format/packfile/scanner_test.go
@@ -140,6 +140,7 @@
 	p := NewScanner(r)
 
 	version, objects, err := p.Header()
+	c.Assert(err, IsNil)
 	c.Assert(version, Equals, VersionSupported)
 	c.Assert(objects, Equals, uint32(31))
 
diff --git a/plumbing/object/commit_walker_bfs_filtered_test.go b/plumbing/object/commit_walker_bfs_filtered_test.go
index d31bdf0..6984b60 100644
--- a/plumbing/object/commit_walker_bfs_filtered_test.go
+++ b/plumbing/object/commit_walker_bfs_filtered_test.go
@@ -29,9 +29,7 @@
 func assertHashes(c *C, commits []*Commit, hashes []string) {
 	if len(commits) != len(hashes) {
 		var expected []string
-		for _, c := range hashes {
-			expected = append(expected, c)
-		}
+		expected = append(expected, hashes...)
 		fmt.Println("expected:", strings.Join(expected, ", "))
 		var got []string
 		for _, c := range commits {
@@ -48,11 +46,7 @@
 
 func validIfCommit(ignored plumbing.Hash) CommitFilter {
 	return func(c *Commit) bool {
-		if c.Hash == ignored {
-			return true
-		}
-
-		return false
+		return c.Hash == ignored
 	}
 }
 
diff --git a/plumbing/object/merge_base.go b/plumbing/object/merge_base.go
index 689e421..6f2568d 100644
--- a/plumbing/object/merge_base.go
+++ b/plumbing/object/merge_base.go
@@ -32,7 +32,7 @@
 	var res []*Commit
 	inNewerHistory := isInIndexCommitFilter(newerHistory)
 	resIter := NewFilterCommitIter(older, &inNewerHistory, &inNewerHistory)
-	err = resIter.ForEach(func(commit *Commit) error {
+	_ = resIter.ForEach(func(commit *Commit) error {
 		res = append(res, commit)
 		return nil
 	})
diff --git a/plumbing/object/patch.go b/plumbing/object/patch.go
index 1efd0b1..32454ac 100644
--- a/plumbing/object/patch.go
+++ b/plumbing/object/patch.go
@@ -278,7 +278,7 @@
 	var scaleFactor float64
 	if longestTotalChange > heightOfHistogram {
 		// Scale down to heightOfHistogram.
-		scaleFactor = float64(longestTotalChange / heightOfHistogram)
+		scaleFactor = longestTotalChange / heightOfHistogram
 	} else {
 		scaleFactor = 1.0
 	}
diff --git a/plumbing/object/patch_test.go b/plumbing/object/patch_test.go
index 47057fb..37944c3 100644
--- a/plumbing/object/patch_test.go
+++ b/plumbing/object/patch_test.go
@@ -19,6 +19,7 @@
 		fixtures.ByURL("https://github.com/git-fixtures/submodule.git").One().DotGit(), cache.NewObjectLRUDefault())
 
 	commit, err := GetCommit(storer, plumbing.NewHash("b685400c1f9316f350965a5993d350bc746b0bf4"))
+	c.Assert(err, IsNil)
 
 	tree, err := commit.Tree()
 	c.Assert(err, IsNil)
diff --git a/plumbing/object/tree.go b/plumbing/object/tree.go
index d30cf6e..d0b4fff 100644
--- a/plumbing/object/tree.go
+++ b/plumbing/object/tree.go
@@ -288,7 +288,7 @@
 			return err
 		}
 
-		if _, err = w.Write([]byte(entry.Hash[:])); err != nil {
+		if _, err = w.Write(entry.Hash[:]); err != nil {
 			return err
 		}
 	}
@@ -517,4 +517,4 @@
 		return parent + "/" + child
 	}
 	return child
-}
\ No newline at end of file
+}
diff --git a/plumbing/protocol/packp/advrefs.go b/plumbing/protocol/packp/advrefs.go
index 684e76a..487ee19 100644
--- a/plumbing/protocol/packp/advrefs.go
+++ b/plumbing/protocol/packp/advrefs.go
@@ -107,7 +107,7 @@
 		return nil
 	}
 
-	ref, err := s.Reference(plumbing.ReferenceName(plumbing.Master))
+	ref, err := s.Reference(plumbing.Master)
 
 	// check first if HEAD is pointing to master
 	if err == nil {
diff --git a/plumbing/protocol/packp/updreq_decode.go b/plumbing/protocol/packp/updreq_decode.go
index c15d49c..51e8183 100644
--- a/plumbing/protocol/packp/updreq_decode.go
+++ b/plumbing/protocol/packp/updreq_decode.go
@@ -225,7 +225,7 @@
 		return nil, errInvalidNewObjId(err)
 	}
 
-	return &Command{Old: oh, New: nh, Name: plumbing.ReferenceName(n)}, nil
+	return &Command{Old: oh, New: nh, Name: n}, nil
 }
 
 func parseHash(s string) (plumbing.Hash, error) {
diff --git a/plumbing/transport/server/server.go b/plumbing/transport/server/server.go
index 20bd12e..8e0dcc1 100644
--- a/plumbing/transport/server/server.go
+++ b/plumbing/transport/server/server.go
@@ -286,11 +286,6 @@
 				continue
 			}
 
-			if err != nil {
-				s.setStatus(cmd.Name, err)
-				continue
-			}
-
 			ref := plumbing.NewHashReference(cmd.Name, cmd.New)
 			err := s.storer.SetReference(ref)
 			s.setStatus(cmd.Name, err)
diff --git a/plumbing/transport/ssh/auth_method.go b/plumbing/transport/ssh/auth_method.go
index dbb47c5..1e5c383 100644
--- a/plumbing/transport/ssh/auth_method.go
+++ b/plumbing/transport/ssh/auth_method.go
@@ -61,7 +61,7 @@
 	return a.SetHostKeyCallback(&ssh.ClientConfig{
 		User: a.User,
 		Auth: []ssh.AuthMethod{
-			ssh.KeyboardInteractiveChallenge(a.Challenge),
+			a.Challenge,
 		},
 	})
 }
diff --git a/prune_test.go b/prune_test.go
index 670cd07..2279636 100644
--- a/prune_test.go
+++ b/prune_test.go
@@ -56,6 +56,8 @@
 		newCount++
 		return nil
 	})
+	c.Assert(err, IsNil)
+
 	if deleteTime.IsZero() {
 		c.Assert(newCount < count, Equals, true)
 	} else {
diff --git a/remote.go b/remote.go
index e229ef1..baee7a0 100644
--- a/remote.go
+++ b/remote.go
@@ -937,7 +937,7 @@
 		updated = true
 	}
 
-	if err == nil && forceNeeded {
+	if forceNeeded {
 		err = ErrForceNeeded
 	}
 
diff --git a/repository_test.go b/repository_test.go
index 32fa4fa..b87eabb 100644
--- a/repository_test.go
+++ b/repository_test.go
@@ -336,12 +336,14 @@
 		Merge:  "refs/heads/foo",
 	}
 	err = r.CreateBranch(testBranch1)
-	err = r.CreateBranch(testBranch2)
-
 	c.Assert(err, IsNil)
+	err = r.CreateBranch(testBranch2)
+	c.Assert(err, IsNil)
+
 	cfg, err := r.Config()
 	c.Assert(err, IsNil)
 	marshaled, err := cfg.Marshal()
+	c.Assert(err, IsNil)
 	c.Assert(string(expected), Equals, string(marshaled))
 }
 
diff --git a/storage/filesystem/dotgit/dotgit_test.go b/storage/filesystem/dotgit/dotgit_test.go
index 73b0291..31c6fe0 100644
--- a/storage/filesystem/dotgit/dotgit_test.go
+++ b/storage/filesystem/dotgit/dotgit_test.go
@@ -226,6 +226,7 @@
 		"refs/remotes/origin/branch",
 		"e8d3ffab552895c19b9fcf7aa264d277cde33881",
 	), nil)
+	c.Assert(err, IsNil)
 
 	// Make sure it only appears once in the refs list.
 	refs, err := dir.Refs()
diff --git a/utils/merkletrie/difftree_test.go b/utils/merkletrie/difftree_test.go
index ac86145..f725bcf 100644
--- a/utils/merkletrie/difftree_test.go
+++ b/utils/merkletrie/difftree_test.go
@@ -177,7 +177,7 @@
 
 	for _, chunk := range strings.Split(s, " ") {
 		change := change{
-			path: string(chunk[1:]),
+			path: chunk[1:],
 		}
 
 		switch chunk[0] {
diff --git a/utils/merkletrie/noder/path_test.go b/utils/merkletrie/noder/path_test.go
index f49f028..f65b1d5 100644
--- a/utils/merkletrie/noder/path_test.go
+++ b/utils/merkletrie/noder/path_test.go
@@ -154,8 +154,8 @@
 }
 
 func (s *PathSuite) TestCompareNormalization(c *C) {
-	p1 := Path([]Noder{&noderMock{name: norm.Form(norm.NFKC).String("페")}})
-	p2 := Path([]Noder{&noderMock{name: norm.Form(norm.NFKD).String("페")}})
+	p1 := Path([]Noder{&noderMock{name: norm.NFKC.String("페")}})
+	p2 := Path([]Noder{&noderMock{name: norm.NFKD.String("페")}})
 	c.Assert(p1.Compare(p2), Equals, 1)
 	c.Assert(p2.Compare(p1), Equals, -1)
 	p1 = Path([]Noder{&noderMock{name: "TestAppWithUnicodéPath"}})
diff --git a/worktree_commit_test.go b/worktree_commit_test.go
index da377c6..5bcbac9 100644
--- a/worktree_commit_test.go
+++ b/worktree_commit_test.go
@@ -210,7 +210,7 @@
 	r, err := Init(st, nil)
 	c.Assert(err, IsNil)
 
-	r, err = Clone(memory.NewStorage(), memfs.New(), &CloneOptions{
+	r, _ = Clone(memory.NewStorage(), memfs.New(), &CloneOptions{
 		URL: path,
 	})
 
diff --git a/worktree_linux.go b/worktree_linux.go
index 891cb1c..efb01b5 100644
--- a/worktree_linux.go
+++ b/worktree_linux.go
@@ -12,7 +12,7 @@
 func init() {
 	fillSystemInfo = func(e *index.Entry, sys interface{}) {
 		if os, ok := sys.(*syscall.Stat_t); ok {
-			e.CreatedAt = time.Unix(int64(os.Ctim.Sec), int64(os.Ctim.Nsec))
+			e.CreatedAt = time.Unix(os.Ctim.Sec, os.Ctim.Nsec)
 			e.Dev = uint32(os.Dev)
 			e.Inode = uint32(os.Ino)
 			e.GID = os.Gid
diff --git a/worktree_test.go b/worktree_test.go
index 045a76d..dab1c23 100644
--- a/worktree_test.go
+++ b/worktree_test.go
@@ -432,7 +432,7 @@
 	err = w.Filesystem.Remove(filename)
 	c.Assert(err, IsNil)
 
-	modFilename := norm.Form(norm.NFKD).String(filename)
+	modFilename := norm.NFKD.String(filename)
 	writeFile(modFilename)
 
 	_, err = w.Add(filename)
@@ -1675,6 +1675,7 @@
 
 	// Status before cleaning.
 	status, err := wt.Status()
+	c.Assert(err, IsNil)
 	c.Assert(len(status), Equals, 2)
 
 	err = wt.Clean(&CleanOptions{})