[go] text/template: use strings.Builder

42 views
Skip to first unread message

xie cui (Gerrit)

unread,
Sep 4, 2022, 8:55:41 AM9/4/22
to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

xie cui has uploaded this change for review.

View Change

text/template: use strings.Builder

Change-Id: I559986b5408d3967c58c9abc6e8f4b04b25496a6
---
M src/text/template/exec_test.go
M src/text/template/funcs.go
M src/text/template/multi_test.go
3 files changed, 25 insertions(+), 17 deletions(-)

diff --git a/src/text/template/exec_test.go b/src/text/template/exec_test.go
index 56566b9..6bfae3d 100644
--- a/src/text/template/exec_test.go
+++ b/src/text/template/exec_test.go
@@ -772,7 +772,7 @@
}

func testExecute(execTests []execTest, template *Template, t *testing.T) {
- b := new(bytes.Buffer)
+ b := new(strings.Builder)
funcs := FuncMap{
"add": add,
"count": count,
@@ -861,7 +861,7 @@
if err != nil {
t.Fatalf("delim %q text %q parse err %s", left, text, err)
}
- var b = new(bytes.Buffer)
+ var b = new(strings.Builder)
err = tmpl.Execute(b, value)
if err != nil {
t.Fatalf("delim %q exec err %s", left, err)
@@ -1024,7 +1024,7 @@
if err != nil {
t.Fatal("parse error:", err)
}
- var b bytes.Buffer
+ var b strings.Builder
const expect = "[1[2[3[4]][5[6]]][7[8[9]][10[11]]]]"
// First by looking up the template.
err = tmpl.Lookup("tree").Execute(&b, tree)
@@ -1236,7 +1236,7 @@
}

func TestComparison(t *testing.T) {
- b := new(bytes.Buffer)
+ b := new(strings.Builder)
var cmpStruct = struct {
Uthree, Ufour uint
NegOne, Three int
@@ -1284,7 +1284,7 @@
if err != nil {
t.Fatal(err)
}
- var b bytes.Buffer
+ var b strings.Builder
// By default, just get "<no value>"
err = tmpl.Execute(&b, data)
if err != nil {
@@ -1454,7 +1454,7 @@
t.Fatal(err)
}

- var buf bytes.Buffer
+ var buf strings.Builder
if err := tmpl.Execute(&buf, "hello"); err != nil {
t.Fatal(err)
}
@@ -1560,7 +1560,7 @@
}
for _, text := range texts {
tmpl := Must(New("tmpl").Parse(text))
- var buf bytes.Buffer
+ var buf strings.Builder
err := tmpl.Execute(&buf, reflect.ValueOf([]V{{1}}))
if err != nil {
t.Fatalf("%s: Execute: %v", text, err)
@@ -1616,7 +1616,7 @@

for _, tt := range tests {
tmpl := Must(New("tmpl").Parse(tt.text))
- var buf bytes.Buffer
+ var buf strings.Builder
err := tmpl.Execute(&buf, map[string]any{
"PlusOne": func(n int) int {
return n + 1
@@ -1709,7 +1709,7 @@
// Issue 31810. Check that a parenthesized first argument behaves properly.
func TestIssue31810(t *testing.T) {
// A simple value with no arguments is fine.
- var b bytes.Buffer
+ var b strings.Builder
const text = "{{ (.) }}"
tmpl, err := New("").Parse(text)
if err != nil {
diff --git a/src/text/template/funcs.go b/src/text/template/funcs.go
index 42bb529..dbea6e7 100644
--- a/src/text/template/funcs.go
+++ b/src/text/template/funcs.go
@@ -5,7 +5,6 @@
package template

import (
- "bytes"
"errors"
"fmt"
"io"
@@ -642,7 +641,7 @@
if !strings.ContainsAny(s, "'\"&<>\000") {
return s
}
- var b bytes.Buffer
+ var b strings.Builder
HTMLEscape(&b, []byte(s))
return b.String()
}
@@ -725,7 +724,7 @@
if strings.IndexFunc(s, jsIsSpecial) < 0 {
return s
}
- var b bytes.Buffer
+ var b strings.Builder
JSEscape(&b, []byte(s))
return b.String()
}
diff --git a/src/text/template/multi_test.go b/src/text/template/multi_test.go
index 6b81ffe..63cd3f7 100644
--- a/src/text/template/multi_test.go
+++ b/src/text/template/multi_test.go
@@ -7,9 +7,9 @@
// Tests for multiple-template parsing and execution.

import (
- "bytes"
"fmt"
"os"
+ "strings"
"testing"
"text/template/parse"
)
@@ -242,7 +242,7 @@
}
}
// Execute root.
- var b bytes.Buffer
+ var b strings.Builder
err = root.ExecuteTemplate(&b, "a", 0)
if err != nil {
t.Fatal(err)
@@ -281,7 +281,7 @@
t.Fatal(err)
}
// Execute.
- var b bytes.Buffer
+ var b strings.Builder
err = added.ExecuteTemplate(&b, "a", 0)
if err != nil {
t.Fatal(err)
@@ -410,7 +410,7 @@
t.Fatal(err)
}
}
- buf := &bytes.Buffer{}
+ buf := &strings.Builder{}
if err := m.Execute(buf, c.in); err != nil {
t.Error(i, err)
continue
@@ -445,7 +445,7 @@
t.Fatal(err)
}
}
- var buf bytes.Buffer
+ var buf strings.Builder
res.Execute(&buf, 0)
if buf.String() != "stylesheet" {
t.Fatalf("iteration %d: got %q; expected %q", i, buf.String(), "stylesheet")

To view, visit change 428280. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: I559986b5408d3967c58c9abc6e8f4b04b25496a6
Gerrit-Change-Number: 428280
Gerrit-PatchSet: 1
Gerrit-Owner: xie cui <5235...@qq.com>
Gerrit-MessageType: newchange

Ian Lance Taylor (Gerrit)

unread,
Sep 6, 2022, 8:18:54 PM9/6/22
to xie cui, goph...@pubsubhelper.golang.org, Rob Pike, Daniel Martí, Gopher Robot, golang-co...@googlegroups.com

Attention is currently required from: Rob Pike, xie cui.

Patch set 1:Run-TryBot +1Auto-Submit +1Code-Review +2

View Change

    To view, visit change 428280. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: I559986b5408d3967c58c9abc6e8f4b04b25496a6
    Gerrit-Change-Number: 428280
    Gerrit-PatchSet: 1
    Gerrit-Owner: xie cui <5235...@qq.com>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
    Gerrit-Reviewer: Rob Pike <r...@golang.org>
    Gerrit-CC: Daniel Martí <mv...@mvdan.cc>
    Gerrit-CC: Gopher Robot <go...@golang.org>
    Gerrit-Attention: xie cui <5235...@qq.com>
    Gerrit-Attention: Rob Pike <r...@golang.org>
    Gerrit-Comment-Date: Wed, 07 Sep 2022 00:18:49 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    Gerrit-MessageType: comment

    Daniel Martí (Gerrit)

    unread,
    Sep 7, 2022, 3:02:47 AM9/7/22
    to xie cui, goph...@pubsubhelper.golang.org, Gopher Robot, Rob Pike, golang-co...@googlegroups.com

    Attention is currently required from: xie cui.

    Patch set 1:Code-Review +2

    View Change

      To view, visit change 428280. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: I559986b5408d3967c58c9abc6e8f4b04b25496a6
      Gerrit-Change-Number: 428280
      Gerrit-PatchSet: 1
      Gerrit-Owner: xie cui <5235...@qq.com>
      Gerrit-Reviewer: Daniel Martí <mv...@mvdan.cc>
      Gerrit-Reviewer: Gopher Robot <go...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
      Gerrit-Reviewer: Rob Pike <r...@golang.org>
      Gerrit-Attention: xie cui <5235...@qq.com>
      Gerrit-Comment-Date: Wed, 07 Sep 2022 07:02:41 +0000

      Michael Knyszek (Gerrit)

      unread,
      Sep 7, 2022, 9:58:01 AM9/7/22
      to xie cui, goph...@pubsubhelper.golang.org, Daniel Martí, Gopher Robot, Rob Pike, golang-co...@googlegroups.com

      Attention is currently required from: xie cui.

      Patch set 1:Code-Review +1

      View Change

        To view, visit change 428280. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: go
        Gerrit-Branch: master
        Gerrit-Change-Id: I559986b5408d3967c58c9abc6e8f4b04b25496a6
        Gerrit-Change-Number: 428280
        Gerrit-PatchSet: 1
        Gerrit-Owner: xie cui <5235...@qq.com>
        Gerrit-Reviewer: Daniel Martí <mv...@mvdan.cc>
        Gerrit-Reviewer: Gopher Robot <go...@golang.org>
        Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
        Gerrit-Reviewer: Michael Knyszek <mkny...@google.com>
        Gerrit-Reviewer: Rob Pike <r...@golang.org>
        Gerrit-Attention: xie cui <5235...@qq.com>
        Gerrit-Comment-Date: Wed, 07 Sep 2022 13:57:57 +0000

        Rob Pike (Gerrit)

        unread,
        Sep 8, 2022, 6:48:38 AM9/8/22
        to xie cui, Rob Pike, goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, Michael Knyszek, Daniel Martí, Gopher Robot, golang-co...@googlegroups.com

        Rob Pike submitted this change.

        View Change


        Approvals: Ian Lance Taylor: Looks good to me, approved; Run TryBots; Automatically submit change Daniel Martí: Looks good to me, approved Michael Knyszek: Looks good to me, but someone else must approve Gopher Robot: TryBots succeeded
        text/template: use strings.Builder

        Change-Id: I559986b5408d3967c58c9abc6e8f4b04b25496a6
        Reviewed-on: https://go-review.googlesource.com/c/go/+/428280
        Auto-Submit: Ian Lance Taylor <ia...@google.com>
        Reviewed-by: Michael Knyszek <mkny...@google.com>
        Reviewed-by: Ian Lance Taylor <ia...@google.com>
        TryBot-Result: Gopher Robot <go...@golang.org>
        Reviewed-by: Daniel Martí <mv...@mvdan.cc>
        Run-TryBot: Ian Lance Taylor <ia...@google.com>

        ---
        M src/text/template/exec_test.go
        M src/text/template/funcs.go
        M src/text/template/multi_test.go
        3 files changed, 32 insertions(+), 17 deletions(-)

        To view, visit change 428280. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: go
        Gerrit-Branch: master
        Gerrit-Change-Id: I559986b5408d3967c58c9abc6e8f4b04b25496a6
        Gerrit-Change-Number: 428280
        Gerrit-PatchSet: 2
        Gerrit-Owner: xie cui <5235...@qq.com>
        Gerrit-Reviewer: Daniel Martí <mv...@mvdan.cc>
        Gerrit-Reviewer: Gopher Robot <go...@golang.org>
        Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
        Gerrit-Reviewer: Michael Knyszek <mkny...@google.com>
        Gerrit-Reviewer: Rob Pike <r...@golang.org>
        Gerrit-MessageType: merged
        Reply all
        Reply to author
        Forward
        0 new messages