aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/azalea/evaluate.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-10-28 02:54:02 +0900
committerOphestra <cat@gensokyo.uk>2026-10-28 02:54:02 +0900
commit7e3ba55cdc4d4a7c19deb65879e8abbb12a8e458 (patch)
tree8479f6d73fde5d27c8c06d37f610376530443071 /internal/rosa/azalea/evaluate.go
parenta491746ce9cdad4e0dce184ad2441733fadaa78a (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.go8
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)