eval_set_op_non_array_rhs

Diagnostic `nanook::eval::set_op_non_array_rhs`

Summary

set operator requires array right-hand side

Help

operators like in, not in, between, outside need an array RHS

Details

When this fires

A set-style operator (in, not in, between, outside) was used with a RHS that isn't an array literal. These ops walk a list, so the right side must be [a, b, c] or [low, high].

What to check

Wrap values in [ ... ] even for a single element. For scalar equality use == or is instead.

# broken
expr = "host.name in \"web-1\""
# fixed
expr = "host.name in [\"web-1\", \"web-2\"]"

See @/docs/nanook-expr.md for the operator reference.