Revert "godoc: use "IsPredeclared" of go/doc"

This reverts commit 144c6642b5d832d6c44a53dad6ee61665dd432ce.

Reason for revert: Breaks Go 1.7 and below.

See https://go-review.googlesource.com/c/43473/

Change-Id: I06ff6e9dccb842e29389af6beb67d6cdc217fb98
Reviewed-on: https://go-review.googlesource.com/43496
Reviewed-by: Dmitri Shuralyov <shurcool@gmail.com>
diff --git a/godoc/linkify.go b/godoc/linkify.go
index e4add22..dbe0e41 100644
--- a/godoc/linkify.go
+++ b/godoc/linkify.go
@@ -13,7 +13,6 @@
 import (
 	"fmt"
 	"go/ast"
-	"go/doc"
 	"go/token"
 	"io"
 	"strconv"
@@ -183,7 +182,7 @@
 				links = append(links, l)
 			} else {
 				l := link{name: n.Name}
-				if n.Obj == nil && doc.IsPredeclared(n.Name) {
+				if n.Obj == nil && predeclared[n.Name] {
 					l.path = builtinPkgPath
 				}
 				links = append(links, l)
@@ -193,3 +192,49 @@
 	})
 	return
 }
+
+// The predeclared map represents the set of all predeclared identifiers.
+// TODO(gri) This information is also encoded in similar maps in go/doc,
+//           but not exported. Consider exporting an accessor and using
+//           it instead.
+var predeclared = map[string]bool{
+	"bool":       true,
+	"byte":       true,
+	"complex64":  true,
+	"complex128": true,
+	"error":      true,
+	"float32":    true,
+	"float64":    true,
+	"int":        true,
+	"int8":       true,
+	"int16":      true,
+	"int32":      true,
+	"int64":      true,
+	"rune":       true,
+	"string":     true,
+	"uint":       true,
+	"uint8":      true,
+	"uint16":     true,
+	"uint32":     true,
+	"uint64":     true,
+	"uintptr":    true,
+	"true":       true,
+	"false":      true,
+	"iota":       true,
+	"nil":        true,
+	"append":     true,
+	"cap":        true,
+	"close":      true,
+	"complex":    true,
+	"copy":       true,
+	"delete":     true,
+	"imag":       true,
+	"len":        true,
+	"make":       true,
+	"new":        true,
+	"panic":      true,
+	"print":      true,
+	"println":    true,
+	"real":       true,
+	"recover":    true,
+}