Fix handler-source and component-source lookups

Both used (env-get name) with one arg which always returned nil.
Now use eval-expr + make-symbol with cek-try fallback, same pattern
as the handler dispatch.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-01 14:20:48 +00:00
parent 87a48ac2aa
commit 5c2fc9b9c0

View File

@@ -3,7 +3,7 @@
(fn (fn
(name) (name)
(let (let
((val (env-get name))) ((val (cek-try (fn () (eval-expr (make-symbol name))) (fn (err) nil))))
(if (if
(or (component? val) (island? val)) (or (component? val) (island? val))
(let (let
@@ -24,11 +24,15 @@
(fn (fn
(name) (name)
(let (let
((val (env-get name))) ((handler-key (str "handler:" name))
(val
(cek-try
(fn () (eval-expr (make-symbol handler-key)))
(fn (err) nil))))
(if (if
(not (nil? val)) (not (nil? val))
(pretty-print val) (pretty-print val)
(error (str "Handler not found: " name)))))) (str ";;; Handler not found: " name)))))
(define _spec-dirs (list "spec" "web" "shared/sx/ref" "lib")) (define _spec-dirs (list "spec" "web" "shared/sx/ref" "lib"))