Skip to content

text/template: empty templates with same name don't result in error #4603

@moraes

Description

@moraes
When templates with the same name are parsed together, an error only occurs if all
templates are not empty:

http://play.golang.org/p/zCOU4ggrqe

Only the last test here pass on tip:

func TestRedefinition(t *testing.T) {
    _, err := New("root").Parse(`{{define "t"}}{{end}}{{define "t"}}{{end}}`, "", "", make(map[string]*Tree), nil)
    if err == nil {
        t.Errorf("expected error")
    }
    _, err = New("root").Parse(`{{define "t"}}a{{end}}{{define "t"}}{{end}}`, "", "", make(map[string]*Tree), nil)
    if err == nil {
        t.Errorf("expected error")
    }
    _, err = New("root").Parse(`{{define "t"}}{{end}}{{define "t"}}b{{end}}`, "", "", make(map[string]*Tree), nil)
    if err == nil {
        t.Errorf("expected error")
    }
    _, err = New("root").Parse(`{{define "t"}}a{{end}}{{define "t"}}b{{end}}`, "", "", make(map[string]*Tree), nil)
    if err == nil {
        t.Errorf("expected error")
    }
}

Is this expected?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions