class

Krikri::UndefinedVariableError

Inherits Exception < Reference < Object

Raised only from #substitute's strict: path (module-arg/param finalization - see #substitute_task_params) when a {{ }} span whose ENTIRE content is a plain variable reference (foo, foo.bar, foo['bar'][0] - no filters/operators/function calls) resolves to nothing. Real Ansible's Jinja2 templating is strict-undefined by default for module-arg rendering and raises in exactly this shape of case ("'foo' is undefined"); this engine otherwise renders a missing lookup as the literal string "undefined" and continues (a deliberate, pervasive leniency used throughout the rest of the templating/ conditional-evaluation code, see ConditionalEvaluator's own comments - NOT changed here). Deliberately narrow: only a bare reference is checked here, not any expression using a filter/function/operator - those still go through the lenient evaluator regardless of strict:, since this hand-rolled evaluator's own known syntax-coverage gaps (documented throughout expression_evaluator.cr) already fall back to the same "undefined" sentinel for reasons that have nothing to do with the variable genuinely being undefined, and conflating the two would turn an evaluator limitation into a spurious task failure.