diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-10-28 02:54:02 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-10-28 02:54:02 +0900 |
| commit | 7e3ba55cdc4d4a7c19deb65879e8abbb12a8e458 (patch) | |
| tree | 8479f6d73fde5d27c8c06d37f610376530443071 /internal/rosa/azalea/evaluate.go | |
| parent | a491746ce9cdad4e0dce184ad2441733fadaa78a (diff) | |
internal/rosa/azalea: treat keys as standard value
This allows expressions like string concatenation for the KV key part.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/azalea/evaluate.go')
| -rw-r--r-- | internal/rosa/azalea/evaluate.go | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/internal/rosa/azalea/evaluate.go b/internal/rosa/azalea/evaluate.go index 9b7b08d0..1fb730f3 100644 --- a/internal/rosa/azalea/evaluate.go +++ b/internal/rosa/azalea/evaluate.go @@ -200,7 +200,6 @@ func (e EvaluationError) Error() string { } var ( - // IdentTools is a special array argument in a package declaration whose // values of [Ident] are kept as is when passed to a [PF]. IdentTools = unique.Make(Ident("tools")) @@ -317,9 +316,10 @@ func evaluateAny(d PF, s []Frame, expr, rp any) bool { case []KV: r := make([][2]string, 0, len(e)) for i := range e { - var _r string - if e[i].V == nil || evaluate(d, s, e[i].V, &_r) { - r = append(r, [2]string{string(e[i].K), _r}) + var _r [2]string + if evaluate(d, s, e[i].K, &_r[0]) && + (e[i].V == nil || evaluate(d, s, e[i].V, &_r[1])) { + r = append(r, _r) } } store(rp, r) |
