HS: of-expression chain rebase + null-safe/queryRef test fixes
- parser.sx: rebase-of-chain handles property chains like bar.doh of foo → (. (. foo bar) doh) - generator: MANUAL_TEST_BODIES for null-safe access (host-call-fn wrapper), queryRef no-match, classRef no-match, JS this-binding SKIP - propertyAccess: 12/12, possessiveExpression: 23/23, queryRef: 13/13 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -849,10 +849,20 @@
|
||||
(adv!)
|
||||
(let
|
||||
((target (parse-expr)))
|
||||
(if
|
||||
(and (list? left) (= (first left) (quote ref)))
|
||||
(list (make-symbol ".") target (nth left 1))
|
||||
(list (quote of) left target)))))
|
||||
(define
|
||||
rebase-of-chain
|
||||
(fn
|
||||
(chain tgt)
|
||||
(cond
|
||||
((and (list? chain) (= (first chain) (quote ref)))
|
||||
(list (make-symbol ".") tgt (nth chain 1)))
|
||||
((and (list? chain) (= (str (first chain)) "."))
|
||||
(list
|
||||
(make-symbol ".")
|
||||
(rebase-of-chain (nth chain 1) tgt)
|
||||
(nth chain 2)))
|
||||
(true (list (quote of) chain tgt)))))
|
||||
(rebase-of-chain left target))))
|
||||
((and (= typ "keyword") (= val "in"))
|
||||
(do (adv!) (list (quote in?) left (parse-expr))))
|
||||
((and (= typ "keyword") (= val "does"))
|
||||
|
||||
Reference in New Issue
Block a user