Commit fdba5a75 authored by Dominik Honnef's avatar Dominik Honnef Committed by Brad Fitzpatrick

all: delete dead non-test code

This change removes a lot of dead code. Some of the code has never been
used, not even when it was first commited. The rest shouldn't have
survived refactors.

This change doesn't remove unused routines helpful for debugging, nor
does it remove code that's used in commented out blocks of code that are
only unused temporarily. Furthermore, unused constants weren't removed
when they were part of a set of constants from specifications.

One noteworthy omission from this CL are about 1000 lines of unused code
in cmd/fix, 700 lines of which are the typechecker, which hasn't been
used ever since the pre-Go 1 fixes have been removed. I wasn't sure if
this code should stick around for future uses of cmd/fix or be culled as
well.

Change-Id: Ib714bc7e487edc11ad23ba1c3222d1fd02e4a549
Reviewed-on: https://go-review.googlesource.com/20926Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 6a6a0734
......@@ -368,15 +368,6 @@ func (w *Walker) parseFile(dir, file string) (*ast.File, error) {
return f, nil
}
func contains(list []string, s string) bool {
for _, t := range list {
if t == s {
return true
}
}
return false
}
// The package cache doesn't operate correctly in rare (so far artificial)
// circumstances (issue 8425). Disable before debugging non-obvious errors
// from the type-checker.
......
......@@ -1282,8 +1282,7 @@ func runGcc(stdin []byte, args []string) (string, string) {
// with equivalent memory layout.
type typeConv struct {
// Cache of already-translated or in-progress types.
m map[dwarf.Type]*Type
typedef map[string]ast.Expr
m map[dwarf.Type]*Type
// Map from types to incomplete pointers to those types.
ptrs map[dwarf.Type][]*Type
......
......@@ -131,7 +131,6 @@ var maxbg = 4 /* maximum number of jobs to run at once */
var (
bgwork = make(chan func(), 1e5)
bgdone = make(chan struct{}, 1e5)
bghelpers sync.WaitGroup
......
......@@ -29,17 +29,15 @@ const (
)
type Package struct {
writer io.Writer // Destination for output.
name string // Package name, json for encoding/json.
userPath string // String the user used to find this package.
unexported bool
matchCase bool
pkg *ast.Package // Parsed package.
file *ast.File // Merged from all files in the package
doc *doc.Package
build *build.Package
fs *token.FileSet // Needed for printing.
buf bytes.Buffer
writer io.Writer // Destination for output.
name string // Package name, json for encoding/json.
userPath string // String the user used to find this package.
pkg *ast.Package // Parsed package.
file *ast.File // Merged from all files in the package
doc *doc.Package
build *build.Package
fs *token.FileSet // Needed for printing.
buf bytes.Buffer
}
type PackageError string // type returned by pkg.Fatalf.
......
......@@ -1312,16 +1312,6 @@ func (b *builder) do(root *action) {
wg.Wait()
}
// hasString reports whether s appears in the list of strings.
func hasString(strings []string, s string) bool {
for _, t := range strings {
if s == t {
return true
}
}
return false
}
// build is the action for building a single package or command.
func (b *builder) build(a *action) (err error) {
// Return an error if the package has CXX files but it's not using
......
......@@ -17,7 +17,6 @@ import (
"runtime"
"strconv"
"strings"
"unicode"
)
var cmdGenerate = &Command{
......@@ -371,17 +370,6 @@ func (g *Generator) expandVar(word string) string {
return os.Getenv(word)
}
// identLength returns the length of the identifier beginning the string.
func (g *Generator) identLength(word string) int {
for i, r := range word {
if r == '_' || unicode.IsLetter(r) || unicode.IsDigit(r) {
continue
}
return i
}
return len(word)
}
// setShorthand installs a new shorthand as defined by a -command directive.
func (g *Generator) setShorthand(words []string) {
// Create command shorthand.
......
......@@ -403,8 +403,6 @@ func errorf(format string, args ...interface{}) {
setExitStatus(1)
}
var logf = log.Printf
func exitIfErrors() {
if exitStatus != 0 {
exit()
......@@ -428,19 +426,6 @@ func run(cmdargs ...interface{}) {
}
}
func runOut(dir string, cmdargs ...interface{}) []byte {
cmdline := stringList(cmdargs...)
cmd := exec.Command(cmdline[0], cmdline[1:]...)
cmd.Dir = dir
out, err := cmd.CombinedOutput()
if err != nil {
os.Stderr.Write(out)
errorf("%v", err)
out = nil
}
return out
}
// envForDir returns a copy of the environment
// suitable for running in the given directory.
// The environment is the current process's environment
......
......@@ -90,7 +90,6 @@ type Package struct {
target string // installed file for this package (may be executable)
fake bool // synthesized package
external bool // synthesized external test package
forceBuild bool // this package must be rebuilt
forceLibrary bool // this package is a library (even if named "main")
cmdline bool // defined by files listed on command line
local bool // imported via local path (./ or ../)
......
......@@ -10,7 +10,6 @@ import (
"fmt"
"io"
"math"
"os"
"path/filepath"
"regexp"
"sort"
......@@ -248,14 +247,6 @@ func valueOrDot(value int64, rpt *Report) string {
return rpt.formatValue(value)
}
// canAccessFile determines if the filename can be opened for reading.
func canAccessFile(path string) bool {
if fi, err := os.Stat(path); err == nil {
return fi.Mode().Perm()&0400 != 0
}
return false
}
// printTags collects all tags referenced in the profile and prints
// them in a sorted table.
func printTags(w io.Writer, rpt *Report) error {
......@@ -764,14 +755,6 @@ type node struct {
tags tagMap
}
func (ts tags) string() string {
var ret string
for _, s := range ts {
ret = ret + fmt.Sprintf("%s %s %d %d\n", s.name, s.unit, s.value, s.weight)
}
return ret
}
type nodeInfo struct {
name string
origName string
......@@ -1697,22 +1680,3 @@ type Report struct {
sampleValue func(*profile.Sample) int64
formatValue func(int64) string
}
func (rpt *Report) formatTags(s *profile.Sample) (string, bool) {
var labels []string
for key, vals := range s.Label {
for _, v := range vals {
labels = append(labels, key+":"+v)
}
}
for key, nvals := range s.NumLabel {
for _, v := range nvals {
labels = append(labels, scaledValueLabel(v, key, "auto"))
}
}
if len(labels) == 0 {
return "", false
}
sort.Strings(labels)
return strings.Join(labels, `\n`), true
}
......@@ -237,7 +237,6 @@ var defact = make([]int, NSTATES) // default actions of states
// lookahead set information
var lkst []Lkset
var nolook = 0 // flag to turn off lookahead computations
var tbitset = 0 // size of lookahead sets
var clset Lkset // temporary storage for lookahead computations
......@@ -3185,8 +3184,6 @@ func isword(c rune) bool {
return c >= 0xa0 || c == '_' || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')
}
func mktemp(t string) string { return t }
//
// return 1 if 2 arrays are equal
// return 0 if not equal
......@@ -3204,13 +3201,6 @@ func aryeq(a []int, b []int) int {
return 1
}
func putrune(f *bufio.Writer, c int) {
s := string(c)
for i := 0; i < len(s); i++ {
f.WriteByte(s[i])
}
}
func getrune(f *bufio.Reader) rune {
var r rune
......
......@@ -29,7 +29,6 @@ type reader struct {
setupDone bool // true if we have parsed the bzip2 header.
blockSize int // blockSize in bytes, i.e. 900 * 1000.
eof bool
buf []byte // stores Burrows-Wheeler transformed data.
c [256]uint // the `C' array for the inverse BWT.
tt []uint32 // mirrors the `tt' array in the bzip2 source and contains the P array in the upper 24 bits.
tPos uint32 // Index of the next output byte in tt.
......
......@@ -75,9 +75,6 @@ func matchToken(xlength uint32, xoffset uint32) token {
return token(matchType + xlength<<lengthShift + xoffset)
}
// Returns the type of a token
func (t token) typ() uint32 { return uint32(t) & typeMask }
// Returns the literal of a literal token
func (t token) literal() uint32 { return uint32(t - literalType) }
......
......@@ -590,13 +590,6 @@ type Certificate struct {
Leaf *x509.Certificate
}
// A TLS record.
type record struct {
contentType recordType
major, minor uint8
payload []byte
}
type handshakeMessage interface {
marshal() []byte
unmarshal([]byte) bool
......
......@@ -174,13 +174,6 @@ func (hc *halfConn) incSeq() {
panic("TLS: sequence number wraparound")
}
// resetSeq resets the sequence number to zero.
func (hc *halfConn) resetSeq() {
for i := range hc.seq {
hc.seq[i] = 0
}
}
// removePadding returns an unpadded slice, in constant time, which is a prefix
// of the input. It also returns a byte which is equal to 255 if the padding
// was valid and 0 otherwise. See RFC 2246, section 6.2.3.2
......
......@@ -838,11 +838,6 @@ func (db *DB) conn(strategy connReuseStrategy) (*driverConn, error) {
return dc, nil
}
var (
errConnClosed = errors.New("database/sql: internal sentinel error: conn is closed")
errConnBusy = errors.New("database/sql: internal sentinel error: conn is busy")
)
// putConnHook is a hook for testing.
var putConnHook func(*DB, *driverConn)
......
......@@ -291,26 +291,3 @@ func stringName(i uint32, names []intName, goSyntax bool) string {
}
return strconv.FormatUint(uint64(i), 10)
}
func flagName(i uint32, names []intName, goSyntax bool) string {
s := ""
for _, n := range names {
if n.i&i == n.i {
if len(s) > 0 {
s += "+"
}
if goSyntax {
s += "macho."
}
s += n.s
i -= n.i
}
}
if len(s) == 0 {
return "0x" + strconv.FormatUint(uint64(i), 16)
}
if i != 0 {
s += "+0x" + strconv.FormatUint(uint64(i), 16)
}
return s
}
......@@ -175,10 +175,9 @@ func (enc *Encoder) EncodeElement(v interface{}, start StartElement) error {
}
var (
begComment = []byte("<!--")
endComment = []byte("-->")
endProcInst = []byte("?>")
endDirective = []byte(">")
begComment = []byte("<!--")
endComment = []byte("-->")
endProcInst = []byte("?>")
)
// EncodeToken writes the given XML token to the stream.
......
......@@ -10,10 +10,6 @@ import (
"unicode/utf8"
)
type writer interface {
WriteString(string) (int, error)
}
// These replacements permit compatibility with old numeric entities that
// assumed Windows-1252 encoding.
// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#consume-a-character-reference
......
......@@ -15,11 +15,6 @@ import (
// ErrClosedPipe is the error used for read or write operations on a closed pipe.
var ErrClosedPipe = errors.New("io: read/write on closed pipe")
type pipeResult struct {
n int
err error
}
// A pipe is the shared pipe structure underlying PipeReader and PipeWriter.
type pipe struct {
rl sync.Mutex // gates readers one at a time
......
......@@ -58,8 +58,6 @@ const (
statusUnknownRole
)
const headerLen = 8
type header struct {
Version uint8
Type recType
......@@ -158,11 +156,6 @@ func (c *conn) writeRecord(recType recType, reqId uint16, b []byte) error {
return err
}
func (c *conn) writeBeginRequest(reqId uint16, role uint16, flags uint8) error {
b := [8]byte{byte(role >> 8), byte(role), flags}
return c.writeRecord(typeBeginRequest, reqId, b[:])
}
func (c *conn) writeEndRequest(reqId uint16, appStatus int, protocolStatus uint8) error {
b := make([]byte, 8)
binary.BigEndian.PutUint32(b, uint32(appStatus))
......
......@@ -168,13 +168,6 @@ var reqWriteExcludeHeaderDump = map[string]bool{
"Trailer": true,
}
// dumpAsReceived writes req to w in the form as it was received, or
// at least as accurately as possible from the information retained in
// the request.
func dumpAsReceived(req *http.Request, w io.Writer) error {
return nil
}
// DumpRequest returns the given request in its HTTP/1.x wire
// representation. It should only be used by servers to debug client
// requests. The returned representation is an approximation only;
......
......@@ -1371,7 +1371,6 @@ func (e *httpError) Timeout() bool { return e.timeout }
func (e *httpError) Temporary() bool { return true }
var errTimeout error = &httpError{err: "net/http: timeout awaiting response headers", timeout: true}
var errClosed error = &httpError{err: "net/http: server closed connection before response was received"}
var errRequestCanceled = errors.New("net/http: request canceled")
var errRequestCanceledConn = errors.New("net/http: request canceled while waiting for connection") // TODO: unify?
......@@ -1697,17 +1696,6 @@ type fakeLocker struct{}
func (fakeLocker) Lock() {}
func (fakeLocker) Unlock() {}
func isNetWriteError(err error) bool {
switch e := err.(type) {
case *url.Error:
return isNetWriteError(e.Err)
case *net.OpError:
return e.Op == "write"
default:
return false
}
}
// cloneTLSConfig returns a shallow clone of the exported
// fields of cfg, ignoring the unexported sync.Once, which
// contains a mutex and must not be copied.
......
......@@ -11,7 +11,6 @@ import (
)
const ptrSize = 4 << (^uintptr(0) >> 63) // unsafe.Sizeof(uintptr(0)) but an ideal const
const cannotSet = "cannot set value obtained from unexported struct field"
// Value is the reflection interface to a Go value.
//
......
......@@ -36,7 +36,6 @@ type bitState struct {
end int
cap []int
input input
jobs []job
visited []uint32
}
......
......@@ -107,14 +107,6 @@ func (m *machine) alloc(i *syntax.Inst) *thread {
return t
}
// free returns t to the free pool.
func (m *machine) free(t *thread) {
m.inputBytes.str = nil
m.inputString.str = ""
m.inputReader.r = nil
m.pool = append(m.pool, t)
}
// match runs the machine over the input starting at pos.
// It reports whether a match was found.
// If so, m.matchcap holds the submatch information.
......@@ -192,7 +184,6 @@ func (m *machine) match(i input, pos int) bool {
func (m *machine) clear(q *queue) {
for _, d := range q.dense {
if d.t != nil {
// m.free(d.t)
m.pool = append(m.pool, d.t)
}
}
......@@ -213,7 +204,6 @@ func (m *machine) step(runq, nextq *queue, pos, nextPos int, c rune, nextCond sy
continue
}
if longest && m.matched && len(t.cap) > 0 && m.matchcap[0] < t.cap[0] {
// m.free(t)
m.pool = append(m.pool, t)
continue
}
......@@ -232,7 +222,6 @@ func (m *machine) step(runq, nextq *queue, pos, nextPos int, c rune, nextCond sy
// First-match mode: cut off all lower-priority threads.
for _, d := range runq.dense[j+1:] {
if d.t != nil {
// m.free(d.t)
m.pool = append(m.pool, d.t)
}
}
......@@ -253,7 +242,6 @@ func (m *machine) step(runq, nextq *queue, pos, nextPos int, c rune, nextCond sy
t = m.add(nextq, i.Out, nextPos, t.cap, nextCond, t)
}
if t != nil {
// m.free(t)
m.pool = append(m.pool, t)
}
}
......
......@@ -75,8 +75,6 @@ import (
"unicode/utf8"
)
var debug = false
// Regexp is the representation of a compiled regular expression.
// A Regexp is safe for concurrent use by multiple goroutines.
type Regexp struct {
......
......@@ -19,13 +19,6 @@ type Interface interface {
Swap(i, j int)
}
func min(a, b int) int {
if a < b {
return a
}
return b
}
// Insertion sort
func insertionSort(data Interface, a, b int) {
for i := a + 1; i < b; i++ {
......
......@@ -322,7 +322,6 @@ const (
complexKind
intKind
floatKind
integerKind
stringKind
uintKind
)
......
......@@ -225,9 +225,6 @@ const (
// Assumed by the unixToInternal computation below.
internalYear = 1
// The year of the zero Unix time.
unixYear = 1970
// Offsets to convert between internal and absolute or Unix times.
absoluteToInternal int64 = (absoluteZeroYear - internalYear) * 365.2425 * secondsPerDay
internalToAbsolute = -absoluteToInternal
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment