diff options
author | Brad Fitzpatrick <bradfitz@golang.org> | 2018-03-26 06:56:39 +0000 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@golang.org> | 2018-03-26 23:05:53 +0000 |
commit | 48db2c01b42d959f2d8fa0c24d853bdb6100cf8a (patch) | |
tree | c80a885e1971c4114d33c25e905def159be7f73c /src/regexp | |
parent | f0eca373beb94763b71dadcf6504a95a3797dcbb (diff) | |
download | go-48db2c01b42d959f2d8fa0c24d853bdb6100cf8a.tar.gz go-48db2c01b42d959f2d8fa0c24d853bdb6100cf8a.zip |
all: use strings.Builder instead of bytes.Buffer where appropriate
I grepped for "bytes.Buffer" and "buf.String" and mostly ignored test
files. I skipped a few on purpose and probably missed a few others,
but otherwise I think this should be most of them.
Updates #18990
Change-Id: I5a6ae4296b87b416d8da02d7bfaf981d8cc14774
Reviewed-on: https://go-review.googlesource.com/102479
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/regexp')
-rw-r--r-- | src/regexp/onepass.go | 4 | ||||
-rw-r--r-- | src/regexp/syntax/parse_test.go | 6 | ||||
-rw-r--r-- | src/regexp/syntax/prog.go | 14 | ||||
-rw-r--r-- | src/regexp/syntax/regexp.go | 7 |
4 files changed, 15 insertions, 16 deletions
diff --git a/src/regexp/onepass.go b/src/regexp/onepass.go index 3ceb461905..125be59a7d 100644 --- a/src/regexp/onepass.go +++ b/src/regexp/onepass.go @@ -5,9 +5,9 @@ package regexp import ( - "bytes" "regexp/syntax" "sort" + "strings" "unicode" ) @@ -54,7 +54,7 @@ func onePassPrefix(p *syntax.Prog) (prefix string, complete bool, pc uint32) { } // Have prefix; gather characters. - var buf bytes.Buffer + var buf strings.Builder for iop(i) == syntax.InstRune && len(i.Rune) == 1 && syntax.Flags(i.Arg)&syntax.FoldCase == 0 { buf.WriteRune(i.Rune[0]) pc, i = i.Out, &p.Inst[i.Out] diff --git a/src/regexp/syntax/parse_test.go b/src/regexp/syntax/parse_test.go index dd6529f7c8..fe3d251761 100644 --- a/src/regexp/syntax/parse_test.go +++ b/src/regexp/syntax/parse_test.go @@ -5,8 +5,8 @@ package syntax import ( - "bytes" "fmt" + "strings" "testing" "unicode" ) @@ -282,7 +282,7 @@ func testParseDump(t *testing.T, tests []parseTest, flags Flags) { // dump prints a string representation of the regexp showing // the structure explicitly. func dump(re *Regexp) string { - var b bytes.Buffer + var b strings.Builder dumpRegexp(&b, re) return b.String() } @@ -312,7 +312,7 @@ var opNames = []string{ // dumpRegexp writes an encoding of the syntax tree for the regexp re to b. // It is used during testing to distinguish between parses that might print // the same using re's String method. -func dumpRegexp(b *bytes.Buffer, re *Regexp) { +func dumpRegexp(b *strings.Builder, re *Regexp) { if int(re.Op) >= len(opNames) || opNames[re.Op] == "" { fmt.Fprintf(b, "op%d", re.Op) } else { diff --git a/src/regexp/syntax/prog.go b/src/regexp/syntax/prog.go index 36aa653b7f..49a06bbfad 100644 --- a/src/regexp/syntax/prog.go +++ b/src/regexp/syntax/prog.go @@ -5,8 +5,8 @@ package syntax import ( - "bytes" "strconv" + "strings" "unicode" ) @@ -117,7 +117,7 @@ type Inst struct { } func (p *Prog) String() string { - var b bytes.Buffer + var b strings.Builder dumpProg(&b, p) return b.String() } @@ -153,7 +153,7 @@ func (p *Prog) Prefix() (prefix string, complete bool) { } // Have prefix; gather characters. - var buf bytes.Buffer + var buf strings.Builder for i.op() == InstRune && len(i.Rune) == 1 && Flags(i.Arg)&FoldCase == 0 { buf.WriteRune(i.Rune[0]) i = p.skipNop(i.Out) @@ -267,18 +267,18 @@ func (i *Inst) MatchEmptyWidth(before rune, after rune) bool { } func (i *Inst) String() string { - var b bytes.Buffer + var b strings.Builder dumpInst(&b, i) return b.String() } -func bw(b *bytes.Buffer, args ...string) { +func bw(b *strings.Builder, args ...string) { for _, s := range args { b.WriteString(s) } } -func dumpProg(b *bytes.Buffer, p *Prog) { +func dumpProg(b *strings.Builder, p *Prog) { for j := range p.Inst { i := &p.Inst[j] pc := strconv.Itoa(j) @@ -298,7 +298,7 @@ func u32(i uint32) string { return strconv.FormatUint(uint64(i), 10) } -func dumpInst(b *bytes.Buffer, i *Inst) { +func dumpInst(b *strings.Builder, i *Inst) { switch i.Op { case InstAlt: bw(b, "alt -> ", u32(i.Out), ", ", u32(i.Arg)) diff --git a/src/regexp/syntax/regexp.go b/src/regexp/syntax/regexp.go index 7b703f22e2..a3f56f8c90 100644 --- a/src/regexp/syntax/regexp.go +++ b/src/regexp/syntax/regexp.go @@ -8,7 +8,6 @@ package syntax // In this package, re is always a *Regexp and r is always a rune. import ( - "bytes" "strconv" "strings" "unicode" @@ -114,7 +113,7 @@ func (x *Regexp) Equal(y *Regexp) bool { } // writeRegexp writes the Perl syntax for the regular expression re to b. -func writeRegexp(b *bytes.Buffer, re *Regexp) { +func writeRegexp(b *strings.Builder, re *Regexp) { switch re.Op { default: b.WriteString("<invalid op" + strconv.Itoa(int(re.Op)) + ">") @@ -245,14 +244,14 @@ func writeRegexp(b *bytes.Buffer, re *Regexp) { } func (re *Regexp) String() string { - var b bytes.Buffer + var b strings.Builder writeRegexp(&b, re) return b.String() } const meta = `\.+*?()|[]{}^$` -func escape(b *bytes.Buffer, r rune, force bool) { +func escape(b *strings.Builder, r rune, force bool) { if unicode.IsPrint(r) { if strings.ContainsRune(meta, r) || force { b.WriteRune('\\') |