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,
+}