]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
jinja : handle empty expressions correctly (#20913)
authorZhihao "Zephyr" Yao <redacted>
Mon, 30 Mar 2026 18:08:46 +0000 (14:08 -0400)
committerGitHub <redacted>
Mon, 30 Mar 2026 18:08:46 +0000 (20:08 +0200)
commitead417f01ce9769249e26fd1aaf700de83003a5c
tree9d76216913142ff848e0dde5e11f4443074eee77
parent64ac9ab66afa57f7012c83841022827dafb4aebe
jinja : handle empty expressions correctly (#20913)

* Reject empty computed member expressions before returning slices[0] from parse_member_expression_arguments().

* Treat empty computed member expressions with Jinja2 undefined semantics

Treat empty computed member expressions like `a[]` as undefined instead of
raising a parser error, to match Jinja2 behavior.

- return a noop expression for empty computed member arguments
- return undefined when a computed member key evaluates to undefined
- add Jinja tests covering `a[]|default('fallback')` and `a[] is undefined`

* Handle undefined computed member properties

Move undefined-property handling to the common member access path, and add a test covering `a[undefined] is undefined`.

* Use default undefined value in member access

Initialize val and then return it when property is undefined.

Co-authored-by: Sigbjørn Skjæret <redacted>
* empty statement parses to blank_expression instead of noop_statement

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
common/jinja/parser.cpp
common/jinja/runtime.cpp
common/jinja/runtime.h
tests/test-jinja.cpp