mirror of
https://github.com/golang/go
synced 2024-11-12 09:30:25 -07:00
all: replace strings.Index with strings.Contains where possible
Change-Id: Ia613f1c37bfce800ece0533a5326fca91d99a66a Reviewed-on: https://go-review.googlesource.com/18120 Reviewed-by: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org>
This commit is contained in:
parent
952c2fd606
commit
b04f3b06ec
@ -15,7 +15,7 @@ import (
|
||||
)
|
||||
|
||||
func ratTok(ch rune) bool {
|
||||
return strings.IndexRune("+-/0123456789.eE", ch) >= 0
|
||||
return strings.ContainsRune("+-/0123456789.eE", ch)
|
||||
}
|
||||
|
||||
// Scan is a support routine for fmt.Scanner. It accepts the formats
|
||||
@ -25,7 +25,7 @@ func (z *Rat) Scan(s fmt.ScanState, ch rune) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if strings.IndexRune("efgEFGv", ch) < 0 {
|
||||
if !strings.ContainsRune("efgEFGv", ch) {
|
||||
return errors.New("Rat.Scan: invalid verb")
|
||||
}
|
||||
if _, ok := z.SetString(string(tok)); !ok {
|
||||
|
@ -877,7 +877,7 @@ func (p *exporter) byte(b byte) {
|
||||
// tracef is like fmt.Printf but it rewrites the format string
|
||||
// to take care of indentation.
|
||||
func (p *exporter) tracef(format string, args ...interface{}) {
|
||||
if strings.IndexAny(format, "<>\n") >= 0 {
|
||||
if strings.ContainsAny(format, "<>\n") {
|
||||
var buf bytes.Buffer
|
||||
for i := 0; i < len(format); i++ {
|
||||
// no need to deal with runes
|
||||
|
@ -130,7 +130,7 @@ func (w *Writer) fieldNeedsQuotes(field string) bool {
|
||||
if field == "" {
|
||||
return false
|
||||
}
|
||||
if field == `\.` || strings.IndexRune(field, w.Comma) >= 0 || strings.IndexAny(field, "\"\r\n") >= 0 {
|
||||
if field == `\.` || strings.ContainsRune(field, w.Comma) || strings.ContainsAny(field, "\"\r\n") {
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -970,7 +970,7 @@ func TestBadRecursiveType(t *testing.T) {
|
||||
err := NewEncoder(b).Encode(&rec)
|
||||
if err == nil {
|
||||
t.Error("expected error; got none")
|
||||
} else if strings.Index(err.Error(), "recursive") < 0 {
|
||||
} else if !strings.Contains(err.Error(), "recursive") {
|
||||
t.Error("expected recursive type error; got", err)
|
||||
}
|
||||
// Can't test decode easily because we can't encode one, so we can't pass one to a Decoder.
|
||||
|
@ -280,7 +280,7 @@ func TestValueError(t *testing.T) {
|
||||
}
|
||||
t4p := &Type4{3}
|
||||
var t4 Type4 // note: not a pointer.
|
||||
if err := encAndDec(t4p, t4); err == nil || strings.Index(err.Error(), "pointer") < 0 {
|
||||
if err := encAndDec(t4p, t4); err == nil || !strings.Contains(err.Error(), "pointer") {
|
||||
t.Error("expected error about pointer; got", err)
|
||||
}
|
||||
}
|
||||
@ -388,7 +388,7 @@ func TestSingletons(t *testing.T) {
|
||||
t.Errorf("expected error decoding %v: %s", test.in, test.err)
|
||||
continue
|
||||
case err != nil && test.err != "":
|
||||
if strings.Index(err.Error(), test.err) < 0 {
|
||||
if !strings.Contains(err.Error(), test.err) {
|
||||
t.Errorf("wrong error decoding %v: wanted %s, got %v", test.in, test.err, err)
|
||||
}
|
||||
continue
|
||||
@ -414,7 +414,7 @@ func TestStructNonStruct(t *testing.T) {
|
||||
var ns NonStruct
|
||||
if err := encAndDec(s, &ns); err == nil {
|
||||
t.Error("should get error for struct/non-struct")
|
||||
} else if strings.Index(err.Error(), "type") < 0 {
|
||||
} else if !strings.Contains(err.Error(), "type") {
|
||||
t.Error("for struct/non-struct expected type error; got", err)
|
||||
}
|
||||
// Now try the other way
|
||||
@ -424,7 +424,7 @@ func TestStructNonStruct(t *testing.T) {
|
||||
}
|
||||
if err := encAndDec(ns, &s); err == nil {
|
||||
t.Error("should get error for non-struct/struct")
|
||||
} else if strings.Index(err.Error(), "type") < 0 {
|
||||
} else if !strings.Contains(err.Error(), "type") {
|
||||
t.Error("for non-struct/struct expected type error; got", err)
|
||||
}
|
||||
}
|
||||
|
@ -548,7 +548,7 @@ func TestGobEncoderFieldTypeError(t *testing.T) {
|
||||
if err == nil {
|
||||
t.Fatal("expected decode error for mismatched fields (encoder to non-decoder)")
|
||||
}
|
||||
if strings.Index(err.Error(), "type") < 0 {
|
||||
if !strings.Contains(err.Error(), "type") {
|
||||
t.Fatal("expected type error; got", err)
|
||||
}
|
||||
// Non-encoder to GobDecoder: error
|
||||
@ -562,7 +562,7 @@ func TestGobEncoderFieldTypeError(t *testing.T) {
|
||||
if err == nil {
|
||||
t.Fatal("expected decode error for mismatched fields (non-encoder to decoder)")
|
||||
}
|
||||
if strings.Index(err.Error(), "type") < 0 {
|
||||
if !strings.Contains(err.Error(), "type") {
|
||||
t.Fatal("expected type error; got", err)
|
||||
}
|
||||
}
|
||||
|
@ -850,7 +850,7 @@ func (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error {
|
||||
switch k {
|
||||
case reflect.String:
|
||||
s := vf.String()
|
||||
dashDash = strings.Index(s, "--") >= 0
|
||||
dashDash = strings.Contains(s, "--")
|
||||
dashLast = s[len(s)-1] == '-'
|
||||
if !dashDash {
|
||||
p.WriteString(s)
|
||||
|
@ -519,7 +519,7 @@ func testScanfMulti(name string, t *testing.T) {
|
||||
if err != nil {
|
||||
if test.err == "" {
|
||||
t.Errorf("got error scanning (%q, %q): %q", test.format, test.text, err)
|
||||
} else if strings.Index(err.Error(), test.err) < 0 {
|
||||
} else if !strings.Contains(err.Error(), test.err) {
|
||||
t.Errorf("got wrong error scanning (%q, %q): %q; expected %q", test.format, test.text, err, test.err)
|
||||
}
|
||||
continue
|
||||
@ -613,7 +613,7 @@ func TestScanNotPointer(t *testing.T) {
|
||||
_, err := Fscan(r, a)
|
||||
if err == nil {
|
||||
t.Error("expected error scanning non-pointer")
|
||||
} else if strings.Index(err.Error(), "pointer") < 0 {
|
||||
} else if !strings.Contains(err.Error(), "pointer") {
|
||||
t.Errorf("expected pointer error scanning non-pointer, got: %s", err)
|
||||
}
|
||||
}
|
||||
@ -623,7 +623,7 @@ func TestScanlnNoNewline(t *testing.T) {
|
||||
_, err := Sscanln("1 x\n", &a)
|
||||
if err == nil {
|
||||
t.Error("expected error scanning string missing newline")
|
||||
} else if strings.Index(err.Error(), "newline") < 0 {
|
||||
} else if !strings.Contains(err.Error(), "newline") {
|
||||
t.Errorf("expected newline error scanning string missing newline, got: %s", err)
|
||||
}
|
||||
}
|
||||
@ -634,7 +634,7 @@ func TestScanlnWithMiddleNewline(t *testing.T) {
|
||||
_, err := Fscanln(r, &a, &b)
|
||||
if err == nil {
|
||||
t.Error("expected error scanning string with extra newline")
|
||||
} else if strings.Index(err.Error(), "newline") < 0 {
|
||||
} else if !strings.Contains(err.Error(), "newline") {
|
||||
t.Errorf("expected newline error scanning string with extra newline, got: %s", err)
|
||||
}
|
||||
}
|
||||
|
@ -225,7 +225,7 @@ func heading(line string) string {
|
||||
}
|
||||
|
||||
// exclude lines with illegal characters
|
||||
if strings.IndexAny(line, ",.;:!?+*/=()[]{}_^°&§~%#@<\">\\") >= 0 {
|
||||
if strings.ContainsAny(line, ",.;:!?+*/=()[]{}_^°&§~%#@<\">\\") {
|
||||
return ""
|
||||
}
|
||||
|
||||
|
@ -196,7 +196,7 @@ func init() {
|
||||
//
|
||||
func def(obj Object) {
|
||||
name := obj.Name()
|
||||
if strings.Index(name, " ") >= 0 {
|
||||
if strings.Contains(name, " ") {
|
||||
return // nothing to do
|
||||
}
|
||||
// fix Obj link for named types
|
||||
|
@ -15,7 +15,7 @@ import (
|
||||
)
|
||||
|
||||
func ratTok(ch rune) bool {
|
||||
return strings.IndexRune("+-/0123456789.eE", ch) >= 0
|
||||
return strings.ContainsRune("+-/0123456789.eE", ch)
|
||||
}
|
||||
|
||||
// Scan is a support routine for fmt.Scanner. It accepts the formats
|
||||
@ -25,7 +25,7 @@ func (z *Rat) Scan(s fmt.ScanState, ch rune) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if strings.IndexRune("efgEFGv", ch) < 0 {
|
||||
if !strings.ContainsRune("efgEFGv", ch) {
|
||||
return errors.New("Rat.Scan: invalid verb")
|
||||
}
|
||||
if _, ok := z.SetString(string(tok)); !ok {
|
||||
|
@ -11,7 +11,7 @@ import (
|
||||
// isTSpecial reports whether rune is in 'tspecials' as defined by RFC
|
||||
// 1521 and RFC 2045.
|
||||
func isTSpecial(r rune) bool {
|
||||
return strings.IndexRune(`()<>@,;:\"/[]?=`, r) != -1
|
||||
return strings.ContainsRune(`()<>@,;:\"/[]?=`, r)
|
||||
}
|
||||
|
||||
// isTokenChar reports whether rune is in 'token' as defined by RFC
|
||||
|
@ -34,7 +34,7 @@ import (
|
||||
type Dir string
|
||||
|
||||
func (d Dir) Open(name string) (File, error) {
|
||||
if filepath.Separator != '/' && strings.IndexRune(name, filepath.Separator) >= 0 ||
|
||||
if filepath.Separator != '/' && strings.ContainsRune(name, filepath.Separator) ||
|
||||
strings.Contains(name, "\x00") {
|
||||
return nil, errors.New("http: invalid character in file path")
|
||||
}
|
||||
|
@ -183,7 +183,7 @@ func testRPC(t *testing.T, addr string) {
|
||||
err = client.Call("Arith.Unknown", args, reply)
|
||||
if err == nil {
|
||||
t.Error("expected error calling unknown service")
|
||||
} else if strings.Index(err.Error(), "method") < 0 {
|
||||
} else if !strings.Contains(err.Error(), "method") {
|
||||
t.Error("expected error about method; got", err)
|
||||
}
|
||||
|
||||
@ -226,7 +226,7 @@ func testRPC(t *testing.T, addr string) {
|
||||
err = client.Call("Arith.Add", reply, reply) // args, reply would be the correct thing to use
|
||||
if err == nil {
|
||||
t.Error("expected error calling Arith.Add with wrong arg type")
|
||||
} else if strings.Index(err.Error(), "type") < 0 {
|
||||
} else if !strings.Contains(err.Error(), "type") {
|
||||
t.Error("expected error about type; got", err)
|
||||
}
|
||||
|
||||
|
@ -511,7 +511,7 @@ func parseAuthority(authority string) (user *Userinfo, host string, err error) {
|
||||
return nil, host, nil
|
||||
}
|
||||
userinfo := authority[:i]
|
||||
if strings.Index(userinfo, ":") < 0 {
|
||||
if !strings.Contains(userinfo, ":") {
|
||||
if userinfo, err = unescape(userinfo, encodeUserPassword); err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ func LookPath(file string) (f string, err error) {
|
||||
}
|
||||
exts = append(exts, e)
|
||||
}
|
||||
if strings.IndexAny(file, `:\/`) != -1 {
|
||||
if strings.ContainsAny(file, `:\/`) {
|
||||
if f, err = findExecutable(file, exts); err == nil {
|
||||
return
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ Pattern:
|
||||
star, chunk, pattern = scanChunk(pattern)
|
||||
if star && chunk == "" {
|
||||
// Trailing * matches rest of string unless it has a /.
|
||||
return strings.Index(name, string(Separator)) < 0, nil
|
||||
return !strings.Contains(name, string(Separator)), nil
|
||||
}
|
||||
// Look for match at current position.
|
||||
t, ok, err := matchChunk(chunk, name)
|
||||
@ -305,5 +305,5 @@ func glob(dir, pattern string, matches []string) (m []string, e error) {
|
||||
// recognized by Match.
|
||||
func hasMeta(path string) bool {
|
||||
// TODO(niemeyer): Should other magic characters be added here?
|
||||
return strings.IndexAny(path, "*?[") >= 0
|
||||
return strings.ContainsAny(path, "*?[")
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ func TestMatch(t *testing.T) {
|
||||
pattern := tt.pattern
|
||||
s := tt.s
|
||||
if runtime.GOOS == "windows" {
|
||||
if strings.Index(pattern, "\\") >= 0 {
|
||||
if strings.Contains(pattern, "\\") {
|
||||
// no escape allowed on windows.
|
||||
continue
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ Pattern:
|
||||
star, chunk, pattern = scanChunk(pattern)
|
||||
if star && chunk == "" {
|
||||
// Trailing * matches rest of string unless it has a /.
|
||||
return strings.Index(name, "/") < 0, nil
|
||||
return !strings.Contains(name, "/"), nil
|
||||
}
|
||||
// Look for match at current position.
|
||||
t, ok, err := matchChunk(chunk, name)
|
||||
|
@ -454,7 +454,7 @@ func Match(pattern string, b []byte) (matched bool, err error) {
|
||||
// in Expand, so for instance $1 represents the text of the first submatch.
|
||||
func (re *Regexp) ReplaceAllString(src, repl string) string {
|
||||
n := 2
|
||||
if strings.Index(repl, "$") >= 0 {
|
||||
if strings.Contains(repl, "$") {
|
||||
n = 2 * (re.numSubexp + 1)
|
||||
}
|
||||
b := re.replaceAll(nil, src, n, func(dst []byte, match []int) []byte {
|
||||
|
@ -252,7 +252,7 @@ const meta = `\.+*?()|[]{}^$`
|
||||
|
||||
func escape(b *bytes.Buffer, r rune, force bool) {
|
||||
if unicode.IsPrint(r) {
|
||||
if strings.IndexRune(meta, r) >= 0 || force {
|
||||
if strings.ContainsRune(meta, r) || force {
|
||||
b.WriteRune('\\')
|
||||
}
|
||||
b.WriteRune(r)
|
||||
|
@ -59,7 +59,7 @@ func TestStack(t *testing.T) {
|
||||
}
|
||||
|
||||
func check(t *testing.T, line, has string) {
|
||||
if strings.Index(line, has) < 0 {
|
||||
if !strings.Contains(line, has) {
|
||||
t.Errorf("expected %q in %q", has, line)
|
||||
}
|
||||
}
|
||||
|
@ -446,7 +446,7 @@ func (s *state) idealConstant(constant *parse.NumberNode) reflect.Value {
|
||||
switch {
|
||||
case constant.IsComplex:
|
||||
return reflect.ValueOf(constant.Complex128) // incontrovertible.
|
||||
case constant.IsFloat && !isHexConstant(constant.Text) && strings.IndexAny(constant.Text, ".eE") >= 0:
|
||||
case constant.IsFloat && !isHexConstant(constant.Text) && strings.ContainsAny(constant.Text, ".eE"):
|
||||
return reflect.ValueOf(constant.Float64)
|
||||
case constant.IsInt:
|
||||
n := int(constant.Int64)
|
||||
|
@ -515,7 +515,7 @@ func HTMLEscape(w io.Writer, b []byte) {
|
||||
// HTMLEscapeString returns the escaped HTML equivalent of the plain text data s.
|
||||
func HTMLEscapeString(s string) string {
|
||||
// Avoid allocation if we can.
|
||||
if strings.IndexAny(s, `'"&<>`) < 0 {
|
||||
if !strings.ContainsAny(s, `'"&<>`) {
|
||||
return s
|
||||
}
|
||||
var b bytes.Buffer
|
||||
|
@ -155,7 +155,7 @@ func (l *lexer) ignore() {
|
||||
|
||||
// accept consumes the next rune if it's from the valid set.
|
||||
func (l *lexer) accept(valid string) bool {
|
||||
if strings.IndexRune(valid, l.next()) >= 0 {
|
||||
if strings.ContainsRune(valid, l.next()) {
|
||||
return true
|
||||
}
|
||||
l.backup()
|
||||
@ -164,7 +164,7 @@ func (l *lexer) accept(valid string) bool {
|
||||
|
||||
// acceptRun consumes a run of runes from the valid set.
|
||||
func (l *lexer) acceptRun(valid string) {
|
||||
for strings.IndexRune(valid, l.next()) >= 0 {
|
||||
for strings.ContainsRune(valid, l.next()) {
|
||||
}
|
||||
l.backup()
|
||||
}
|
||||
|
@ -447,7 +447,7 @@ func TestParseErrors(t *testing.T) {
|
||||
_, err := Parse(test.format, test.value)
|
||||
if err == nil {
|
||||
t.Errorf("expected error for %q %q", test.format, test.value)
|
||||
} else if strings.Index(err.Error(), test.expect) < 0 {
|
||||
} else if !strings.Contains(err.Error(), test.expect) {
|
||||
t.Errorf("expected error with %q for %q %q; got %s", test.expect, test.format, test.value, err)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user