aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-09-05 02:58:11 +0900
committerOphestra <cat@gensokyo.uk>2026-09-05 02:58:11 +0900
commit871c701fdbce4a3d43e6e8edc436a2ae93322540 (patch)
tree715318d8e6b0086fd15088ec9a6d99d5440ab610 /internal
parentf8bd988752dbee079ea6f1bfa69a5bd3bf16baea (diff)
internal/rosa/azalea: handle nil specials
Specials are hacked on, so they do not support regular nil values. This change handles the nil identifier as a special case. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal')
-rw-r--r--internal/rosa/azalea/evaluate.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/internal/rosa/azalea/evaluate.go b/internal/rosa/azalea/evaluate.go
index b35a056a..26a02c02 100644
--- a/internal/rosa/azalea/evaluate.go
+++ b/internal/rosa/azalea/evaluate.go
@@ -365,7 +365,13 @@ func evaluateAny(d PF, s []Frame, expr, rp any) bool {
panic(ErrInvalidSpecial)
}
farg.K = names[0]
- if err := storeE(&farg.V, arg.V[0]); err != nil {
+
+ v := arg.V[0]
+ if p, _ok := v.(Ident); _ok && p == "nil" {
+ v = Nil{}
+ }
+
+ if err := storeE(&farg.V, v); err != nil {
panic(err)
}
fargs = append(fargs, farg)