mirror of https://github.com/golang/go.git
html/template: track continue nodes correctly when escaping
Fixes #69076 Change-Id: I1a16675c466722f44d0734e95d3c8111e33ff580 Reviewed-on: https://go-review.googlesource.com/c/go/+/607736 Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Michael Pratt <mpratt@google.com> Reviewed-by: Zxilly Chou <zxilly@outlook.com> Run-TryBot: shuang cui <imcusg@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
994d1d4466
commit
7b4ecaa902
|
|
@ -145,7 +145,7 @@ func (e *escaper) escape(c context, n parse.Node) context {
|
||||||
return c
|
return c
|
||||||
case *parse.ContinueNode:
|
case *parse.ContinueNode:
|
||||||
c.n = n
|
c.n = n
|
||||||
e.rangeContext.continues = append(e.rangeContext.breaks, c)
|
e.rangeContext.continues = append(e.rangeContext.continues, c)
|
||||||
return context{state: stateDead}
|
return context{state: stateDead}
|
||||||
case *parse.IfNode:
|
case *parse.IfNode:
|
||||||
return e.escapeBranch(c, &n.BranchNode, "if")
|
return e.escapeBranch(c, &n.BranchNode, "if")
|
||||||
|
|
|
||||||
|
|
@ -1060,6 +1060,10 @@ func TestErrors(t *testing.T) {
|
||||||
"{{range .Items}}<a{{if .X}}{{continue}}{{end}}>{{end}}",
|
"{{range .Items}}<a{{if .X}}{{continue}}{{end}}>{{end}}",
|
||||||
"z:1:29: at range loop continue: {{range}} branches end in different contexts",
|
"z:1:29: at range loop continue: {{range}} branches end in different contexts",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"{{range .Items}}{{if .X}}{{break}}{{end}}<a{{if .Y}}{{continue}}{{end}}>{{if .Z}}{{continue}}{{end}}{{end}}",
|
||||||
|
"z:1:54: at range loop continue: {{range}} branches end in different contexts",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"<a b=1 c={{.H}}",
|
"<a b=1 c={{.H}}",
|
||||||
"z: ends in a non-text context: {stateAttr delimSpaceOrTagEnd",
|
"z: ends in a non-text context: {stateAttr delimSpaceOrTagEnd",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue