diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-09-15 22:12:31 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-09-15 22:12:31 +0200 |
| commit | 88cbe4e623eab9adb608566ac636d36eed72e551 (patch) | |
| tree | a55e50b49ded3f386772cecc4f8ab1e71613014d /internal/engine/engine.go | |
| parent | 77a015b96db8727bb12d0869f180a44d087f6319 (diff) | |
| download | krino-88cbe4e623eab9adb608566ac636d36eed72e551.tar.gz krino-88cbe4e623eab9adb608566ac636d36eed72e551.zip | |
check refuses placeholders that could never expand
Diffstat (limited to 'internal/engine/engine.go')
| -rw-r--r-- | internal/engine/engine.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/internal/engine/engine.go b/internal/engine/engine.go index 00a249d..958e4f9 100644 --- a/internal/engine/engine.go +++ b/internal/engine/engine.go @@ -177,6 +177,11 @@ func Load(mainFile string, names ...string) (*Engine, []*config.Diag) { func checkCaptures(file string, r *config.Rule, c *cond.Cond) *config.Diag { groups := c.NameGroups() for _, a := range r.Actions { + if err := plan.CheckTemplate(a.Arg); err != nil { + // A placeholder that could never expand is a config error, not a + // step skipped at plan time (plan 12). + return &config.Diag{File: file, Pos: a.Pos, Msg: fmt.Sprintf("rule %q: %v", r.Name, err)} + } n, err := plan.MaxIndex(a.Arg) if err != nil || n == 0 { continue |
