all: revert "all: prefer strings.LastIndexByte over strings.LastIndex"

This reverts https://golang.org/cl/66372.

Updates #22148

Change-Id: I3e94af3dfc11a2883bf28e1d5e1f32f98760b3ee
Reviewed-on: https://go-review.googlesource.com/68431
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/src/archive/tar/writer.go b/src/archive/tar/writer.go
index 0afb557..1e5b76f 100644
--- a/src/archive/tar/writer.go
+++ b/src/archive/tar/writer.go
@@ -376,7 +376,7 @@
 		length--
 	}
 
-	i := strings.LastIndexByte(name[:length], '/')
+	i := strings.LastIndex(name[:length], "/")
 	nlen := len(name) - i - 1 // nlen is length of suffix
 	plen := i                 // plen is length of prefix
 	if i <= 0 || nlen > nameSize || nlen == 0 || plen > prefixSize {
diff --git a/src/cmd/doc/main.go b/src/cmd/doc/main.go
index e0a7112..de27540 100644
--- a/src/cmd/doc/main.go
+++ b/src/cmd/doc/main.go
@@ -205,7 +205,7 @@
 	}
 	// If it has a slash, it must be a package path but there is a symbol.
 	// It's the last package path we care about.
-	slash := strings.LastIndexByte(arg, '/')
+	slash := strings.LastIndex(arg, "/")
 	// There may be periods in the package path before or after the slash
 	// and between a symbol and method.
 	// Split the string at various periods to see what we find.
diff --git a/src/cmd/fix/fix.go b/src/cmd/fix/fix.go
index ebed82f..03c828a 100644
--- a/src/cmd/fix/fix.go
+++ b/src/cmd/fix/fix.go
@@ -719,7 +719,7 @@
 	case "<nil>":
 		// If the package name is not explicitly specified,
 		// make an educated guess. This is not guaranteed to be correct.
-		lastSlash := strings.LastIndexByte(path, '/')
+		lastSlash := strings.LastIndex(path, "/")
 		if lastSlash == -1 {
 			name = path
 		} else {
diff --git a/src/cmd/vet/print.go b/src/cmd/vet/print.go
index 453a072..21bb0d0 100644
--- a/src/cmd/vet/print.go
+++ b/src/cmd/vet/print.go
@@ -38,7 +38,7 @@
 
 		// Backwards compatibility: skip optional first argument
 		// index after the colon.
-		if colon := strings.LastIndexByte(name, ':'); colon > 0 {
+		if colon := strings.LastIndex(name, ":"); colon > 0 {
 			name = name[:colon]
 		}
 
diff --git a/src/crypto/tls/handshake_client.go b/src/crypto/tls/handshake_client.go
index 38d01bf..f8db662 100644
--- a/src/crypto/tls/handshake_client.go
+++ b/src/crypto/tls/handshake_client.go
@@ -848,7 +848,7 @@
 	if len(host) > 0 && host[0] == '[' && host[len(host)-1] == ']' {
 		host = host[1 : len(host)-1]
 	}
-	if i := strings.LastIndexByte(host, '%'); i > 0 {
+	if i := strings.LastIndex(host, "%"); i > 0 {
 		host = host[:i]
 	}
 	if net.ParseIP(host) != nil {
diff --git a/src/crypto/tls/tls.go b/src/crypto/tls/tls.go
index 1c91dae..615d1e5 100644
--- a/src/crypto/tls/tls.go
+++ b/src/crypto/tls/tls.go
@@ -122,7 +122,7 @@
 		return nil, err
 	}
 
-	colonPos := strings.LastIndexByte(addr, ':')
+	colonPos := strings.LastIndex(addr, ":")
 	if colonPos == -1 {
 		colonPos = len(addr)
 	}
diff --git a/src/debug/gosym/symtab.go b/src/debug/gosym/symtab.go
index fd8703b..f5f9963 100644
--- a/src/debug/gosym/symtab.go
+++ b/src/debug/gosym/symtab.go
@@ -40,7 +40,7 @@
 // PackageName returns the package part of the symbol name,
 // or the empty string if there is none.
 func (s *Sym) PackageName() string {
-	pathend := strings.LastIndexByte(s.Name, '/')
+	pathend := strings.LastIndex(s.Name, "/")
 	if pathend < 0 {
 		pathend = 0
 	}
@@ -54,12 +54,12 @@
 // ReceiverName returns the receiver type name of this symbol,
 // or the empty string if there is none.
 func (s *Sym) ReceiverName() string {
-	pathend := strings.LastIndexByte(s.Name, '/')
+	pathend := strings.LastIndex(s.Name, "/")
 	if pathend < 0 {
 		pathend = 0
 	}
 	l := strings.Index(s.Name[pathend:], ".")
-	r := strings.LastIndexByte(s.Name[pathend:], '.')
+	r := strings.LastIndex(s.Name[pathend:], ".")
 	if l == -1 || r == -1 || l == r {
 		return ""
 	}
@@ -68,7 +68,7 @@
 
 // BaseName returns the symbol name without the package or receiver name.
 func (s *Sym) BaseName() string {
-	if i := strings.LastIndexByte(s.Name, '.'); i != -1 {
+	if i := strings.LastIndex(s.Name, "."); i != -1 {
 		return s.Name[i+1:]
 	}
 	return s.Name
diff --git a/src/encoding/xml/marshal.go b/src/encoding/xml/marshal.go
index 773f0f2..42133a7 100644
--- a/src/encoding/xml/marshal.go
+++ b/src/encoding/xml/marshal.go
@@ -333,7 +333,7 @@
 	// Pick a name. We try to use the final element of the path
 	// but fall back to _.
 	prefix := strings.TrimRight(url, "/")
-	if i := strings.LastIndexByte(prefix, '/'); i >= 0 {
+	if i := strings.LastIndex(prefix, "/"); i >= 0 {
 		prefix = prefix[i+1:]
 	}
 	if prefix == "" || !isName([]byte(prefix)) || strings.Contains(prefix, ":") {
diff --git a/src/go/build/build.go b/src/go/build/build.go
index 8e92b2f..d8163d0 100644
--- a/src/go/build/build.go
+++ b/src/go/build/build.go
@@ -465,7 +465,7 @@
 }
 
 func nameExt(name string) string {
-	i := strings.LastIndexByte(name, '.')
+	i := strings.LastIndex(name, ".")
 	if i < 0 {
 		return ""
 	}
@@ -610,7 +610,7 @@
 						}
 						tried.vendor = append(tried.vendor, dir)
 					}
-					i := strings.LastIndexByte(sub, '/')
+					i := strings.LastIndex(sub, "/")
 					if i < 0 {
 						break
 					}
@@ -1064,7 +1064,7 @@
 		return
 	}
 
-	i := strings.LastIndexByte(name, '.')
+	i := strings.LastIndex(name, ".")
 	if i < 0 {
 		i = len(name)
 	}
diff --git a/src/go/doc/testdata/testing.go b/src/go/doc/testdata/testing.go
index 066e4a4..52810f7 100644
--- a/src/go/doc/testdata/testing.go
+++ b/src/go/doc/testdata/testing.go
@@ -93,7 +93,7 @@
 		_, file, line, ok := runtime.Caller(3) // decorate + log + public function.
 		if ok {
 			// Truncate file name at last file name separator.
-			if index := strings.LastIndexByte(file, '/'); index >= 0 {
+			if index := strings.LastIndex(file, "/"); index >= 0 {
 				file = file[index+1:]
 			} else if index = strings.LastIndex(file, "\\"); index >= 0 {
 				file = file[index+1:]
diff --git a/src/go/printer/printer.go b/src/go/printer/printer.go
index 2b8dc19..dbb4bbd 100644
--- a/src/go/printer/printer.go
+++ b/src/go/printer/printer.go
@@ -624,7 +624,7 @@
 	if strings.HasPrefix(text, linePrefix) && (!pos.IsValid() || pos.Column == 1) {
 		// possibly a line directive
 		ldir := strings.TrimSpace(text[len(linePrefix):])
-		if i := strings.LastIndexByte(ldir, ':'); i >= 0 {
+		if i := strings.LastIndex(ldir, ":"); i >= 0 {
 			if line, err := strconv.Atoi(ldir[i+1:]); err == nil && line > 0 {
 				// The line directive we are about to print changed
 				// the Filename and Line number used for subsequent
diff --git a/src/go/types/resolver.go b/src/go/types/resolver.go
index 253f8a0..ba75a0d 100644
--- a/src/go/types/resolver.go
+++ b/src/go/types/resolver.go
@@ -172,7 +172,7 @@
 				if i := len(name); i > 0 && name[i-1] == '/' {
 					name = name[:i-1]
 				}
-				if i := strings.LastIndexByte(name, '/'); i >= 0 {
+				if i := strings.LastIndex(name, "/"); i >= 0 {
 					name = name[i+1:]
 				}
 				imp = NewPackage(path, name)
@@ -516,7 +516,7 @@
 
 // pkgName returns the package name (last element) of an import path.
 func pkgName(path string) string {
-	if i := strings.LastIndexByte(path, '/'); i >= 0 {
+	if i := strings.LastIndex(path, "/"); i >= 0 {
 		path = path[i+1:]
 	}
 	return path
diff --git a/src/internal/trace/parser.go b/src/internal/trace/parser.go
index 1033d52..a774bf1 100644
--- a/src/internal/trace/parser.go
+++ b/src/internal/trace/parser.go
@@ -812,7 +812,7 @@
 		f := &Frame{PC: pc}
 		f.Fn = fn[:len(fn)-1]
 		f.File = file[:len(file)-1]
-		if colon := strings.LastIndexByte(f.File, ':'); colon != -1 {
+		if colon := strings.LastIndex(f.File, ":"); colon != -1 {
 			ln, err := strconv.Atoi(f.File[colon+1:])
 			if err == nil {
 				f.File = f.File[:colon]
diff --git a/src/net/http/cookiejar/jar.go b/src/net/http/cookiejar/jar.go
index f147ece..ef8c35b 100644
--- a/src/net/http/cookiejar/jar.go
+++ b/src/net/http/cookiejar/jar.go
@@ -330,7 +330,7 @@
 
 	var i int
 	if psl == nil {
-		i = strings.LastIndexByte(host, '.')
+		i = strings.LastIndex(host, ".")
 		if i <= 0 {
 			return host
 		}
@@ -349,7 +349,7 @@
 		// here on, so it is okay if psl.PublicSuffix("www.buggy.psl")
 		// returns "com" as the jar key is generated from host.
 	}
-	prevDot := strings.LastIndexByte(host[:i-1], '.')
+	prevDot := strings.LastIndex(host[:i-1], ".")
 	return host[prevDot+1:]
 }
 
@@ -365,7 +365,7 @@
 		return "/" // Path is empty or malformed.
 	}
 
-	i := strings.LastIndexByte(path, '/') // Path starts with "/", so i != -1.
+	i := strings.LastIndex(path, "/") // Path starts with "/", so i != -1.
 	if i == 0 {
 		return "/" // Path has the form "/abc".
 	}
diff --git a/src/net/http/cookiejar/jar_test.go b/src/net/http/cookiejar/jar_test.go
index ed4baae..47fb1ab 100644
--- a/src/net/http/cookiejar/jar_test.go
+++ b/src/net/http/cookiejar/jar_test.go
@@ -37,7 +37,7 @@
 	if d == "www2.buggy.psl" {
 		return "com"
 	}
-	return d[strings.LastIndexByte(d, '.')+1:]
+	return d[strings.LastIndex(d, ".")+1:]
 }
 
 // newTestJar creates an empty Jar with testPSL as the public suffix list.
diff --git a/src/net/http/http.go b/src/net/http/http.go
index 7d5b740..b95ca89 100644
--- a/src/net/http/http.go
+++ b/src/net/http/http.go
@@ -35,7 +35,7 @@
 
 // Given a string of the form "host", "host:port", or "[ipv6::address]:port",
 // return true if the string includes a port.
-func hasPort(s string) bool { return strings.LastIndexByte(s, ':') > strings.LastIndexByte(s, ']') }
+func hasPort(s string) bool { return strings.LastIndex(s, ":") > strings.LastIndex(s, "]") }
 
 // removeEmptyPort strips the empty port in ":port" to ""
 // as mandated by RFC 3986 Section 6.2.3.
diff --git a/src/net/http/request.go b/src/net/http/request.go
index 801d00e..870af85 100644
--- a/src/net/http/request.go
+++ b/src/net/http/request.go
@@ -688,11 +688,11 @@
 	if !strings.HasPrefix(host, "[") {
 		return host
 	}
-	i := strings.LastIndexByte(host, ']')
+	i := strings.LastIndex(host, "]")
 	if i < 0 {
 		return host
 	}
-	j := strings.LastIndexByte(host[:i], '%')
+	j := strings.LastIndex(host[:i], "%")
 	if j < 0 {
 		return host
 	}
diff --git a/src/net/http/transport.go b/src/net/http/transport.go
index 034d016..5f2ace7 100644
--- a/src/net/http/transport.go
+++ b/src/net/http/transport.go
@@ -1236,7 +1236,7 @@
 
 	addr = strings.ToLower(strings.TrimSpace(addr))
 	if hasPort(addr) {
-		addr = addr[:strings.LastIndexByte(addr, ':')]
+		addr = addr[:strings.LastIndex(addr, ":")]
 	}
 
 	for _, p := range strings.Split(noProxy, ",") {
@@ -1245,7 +1245,7 @@
 			continue
 		}
 		if hasPort(p) {
-			p = p[:strings.LastIndexByte(p, ':')]
+			p = p[:strings.LastIndex(p, ":")]
 		}
 		if addr == p {
 			return false
@@ -1317,7 +1317,7 @@
 func (cm *connectMethod) tlsHost() string {
 	h := cm.targetAddr
 	if hasPort(h) {
-		h = h[:strings.LastIndexByte(h, ':')]
+		h = h[:strings.LastIndex(h, ":")]
 	}
 	return h
 }
diff --git a/src/net/mail/message.go b/src/net/mail/message.go
index 903dbd0..9539c22 100644
--- a/src/net/mail/message.go
+++ b/src/net/mail/message.go
@@ -177,7 +177,7 @@
 // the name will be rendered according to RFC 2047.
 func (a *Address) String() string {
 	// Format address local@domain
-	at := strings.LastIndexByte(a.Address, '@')
+	at := strings.LastIndex(a.Address, "@")
 	var local, domain string
 	if at < 0 {
 		// This is a malformed address ("@" is required in addr-spec);
diff --git a/src/net/rpc/server.go b/src/net/rpc/server.go
index 0499f4a..29aae7e 100644
--- a/src/net/rpc/server.go
+++ b/src/net/rpc/server.go
@@ -592,7 +592,7 @@
 	// we can still recover and move on to the next request.
 	keepReading = true
 
-	dot := strings.LastIndexByte(req.ServiceMethod, '.')
+	dot := strings.LastIndex(req.ServiceMethod, ".")
 	if dot < 0 {
 		err = errors.New("rpc: service/method request ill-formed: " + req.ServiceMethod)
 		return
diff --git a/src/net/url/url.go b/src/net/url/url.go
index 53122c7..c9353ab 100644
--- a/src/net/url/url.go
+++ b/src/net/url/url.go
@@ -532,7 +532,7 @@
 }
 
 func parseAuthority(authority string) (user *Userinfo, host string, err error) {
-	i := strings.LastIndexByte(authority, '@')
+	i := strings.LastIndex(authority, "@")
 	if i < 0 {
 		host, err = parseHost(authority)
 	} else {
@@ -569,7 +569,7 @@
 	if strings.HasPrefix(host, "[") {
 		// Parse an IP-Literal in RFC 3986 and RFC 6874.
 		// E.g., "[fe80::1]", "[fe80::1%25en0]", "[fe80::1]:80".
-		i := strings.LastIndexByte(host, ']')
+		i := strings.LastIndex(host, "]")
 		if i < 0 {
 			return "", errors.New("missing ']' in host")
 		}
@@ -885,7 +885,7 @@
 	if ref == "" {
 		full = base
 	} else if ref[0] != '/' {
-		i := strings.LastIndexByte(base, '/')
+		i := strings.LastIndex(base, "/")
 		full = base[:i+1] + ref
 	} else {
 		full = ref
diff --git a/src/os/exec/lp_windows.go b/src/os/exec/lp_windows.go
index 4e1ffb0..793d4d9 100644
--- a/src/os/exec/lp_windows.go
+++ b/src/os/exec/lp_windows.go
@@ -26,7 +26,7 @@
 }
 
 func hasExt(file string) bool {
-	i := strings.LastIndexByte(file, '.')
+	i := strings.LastIndex(file, ".")
 	if i < 0 {
 		return false
 	}
diff --git a/src/path/path.go b/src/path/path.go
index 074cfff..5c905110 100644
--- a/src/path/path.go
+++ b/src/path/path.go
@@ -145,7 +145,7 @@
 // file set to path.
 // The returned values have the property that path = dir+file.
 func Split(path string) (dir, file string) {
-	i := strings.LastIndexByte(path, '/')
+	i := strings.LastIndex(path, "/")
 	return path[:i+1], path[i+1:]
 }
 
@@ -187,7 +187,7 @@
 		path = path[0 : len(path)-1]
 	}
 	// Find the last element
-	if i := strings.LastIndexByte(path, '/'); i >= 0 {
+	if i := strings.LastIndex(path, "/"); i >= 0 {
 		path = path[i+1:]
 	}
 	// If empty now, it had only slashes.
diff --git a/src/testing/testing.go b/src/testing/testing.go
index d5c045f..a170cd0 100644
--- a/src/testing/testing.go
+++ b/src/testing/testing.go
@@ -360,7 +360,7 @@
 	_, file, line, ok := runtime.Caller(skip)
 	if ok {
 		// Truncate file name at last file name separator.
-		if index := strings.LastIndexByte(file, '/'); index >= 0 {
+		if index := strings.LastIndex(file, "/"); index >= 0 {
 			file = file[index+1:]
 		} else if index = strings.LastIndex(file, "\\"); index >= 0 {
 			file = file[index+1:]
diff --git a/src/time/mono_test.go b/src/time/mono_test.go
index cc24db0..8778ab7 100644
--- a/src/time/mono_test.go
+++ b/src/time/mono_test.go
@@ -253,7 +253,7 @@
 		t1 := Now()
 		SetMono(&t1, tt.mono)
 		s := t1.String()
-		got := s[strings.LastIndexByte(s, ' ')+1:]
+		got := s[strings.LastIndex(s, " ")+1:]
 		if got != tt.want {
 			t.Errorf("with mono=%d: got %q; want %q", tt.mono, got, tt.want)
 		}