]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
tpl: Avoid panic on nonsensical return construct
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 14 Apr 2025 09:55:57 +0000 (11:55 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 14 Apr 2025 12:38:22 +0000 (14:38 +0200)
Fixes #13600

tpl/templates/templates_integration_test.go
tpl/tplimpl/templatetransform.go

index 635d521d768ea09207655c47526509bd5b358f4b..7bdcdc9f0ae0cb2299c9b732fe1eba17c7d23a75 100644 (file)
@@ -262,3 +262,20 @@ Line 3.
        b.Assert(err, qt.IsNotNil)
        b.Assert(err.Error(), qt.Contains, filepath.FromSlash(` "/layouts/home.html:2:11": execute of template failed`))
 }
+
+func TestPartialReturnPanicIssue13600(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- hugo.toml --
+-- layouts/home.html --
+Partial: {{ partial "p1.html" . }}
+-- layouts/_partials/p1.html --
+P1.
+{{ return ( delimit . ", " ) | string }}
+`
+
+       b, err := hugolib.TestE(t, files)
+       b.Assert(err, qt.IsNotNil)
+       b.Assert(err.Error(), qt.Contains, "wrong number of args for string: want 1 got 0")
+}
index cba4c6584f95be366907820e7e3f69dea4c5ca1b..eca9fdad1d91d9daa1649c8fc105d1ab26be7bc8 100644 (file)
@@ -175,6 +175,9 @@ func (c *templateTransformContext) applyTransformations(n parse.Node) (bool, err
                }
 
        case *parse.CommandNode:
+               if x == nil {
+                       return true, nil
+               }
                c.collectInner(x)
                keep := c.collectReturnNode(x)