HS: parse-cmd fallback validates pseudo-command is a function call
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 40s

The (true ...) fallback in parse-cmd previously accepted any expression
as a command. Now it checks that the parsed expression's head is `call`
or `method-call` — the only valid forms for pseudo-commands (foo() or
foo.bar()). Any other expression (e.g. foo.bar + bar) raises a parse
error instead of silently becoming a no-op.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-05 14:09:42 +00:00
parent 8f8f9623e0
commit 0bef67dd47

View File

@@ -2871,7 +2871,18 @@
(list (quote view-transition!) using body))))) (list (quote view-transition!) using body)))))
((and (= typ "keyword") (or (= val "on") (= val "init") (= val "def") (= val "behavior") (= val "live") (= val "when") (= val "bind"))) ((and (= typ "keyword") (or (= val "on") (= val "init") (= val "def") (= val "behavior") (= val "live") (= val "when") (= val "bind")))
nil) nil)
(true (parse-expr)))))) (true
(let
((expr (parse-expr)))
(if
(or
(= (first expr) (quote call))
(= (first expr) (quote method-call)))
expr
(error
(str
"Invalid command — expected a function call, got: "
(str (first expr)))))))))))
(define (define
parse-cmd-list parse-cmd-list
(fn (fn