smalltalk: ifTrue:/ifFalse: family + bar-as-binary parser fix
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled

This commit is contained in:
2026-04-25 04:47:42 +00:00
parent a7272ad162
commit c7d0801850
3 changed files with 111 additions and 2 deletions

View File

@@ -668,6 +668,10 @@
(else receiver)))))
;; Binary message: <unary> (binop <unary>)*
;; A bare `|` is also a legitimate binary selector (logical or in
;; some Smalltalks); the tokenizer emits it as the `bar` type so
;; that block-param / temp-decl delimiters are easy to spot.
;; In expression position, accept it as a binary operator.
(define
parse-binary-message
(fn
@@ -680,7 +684,7 @@
(fn
()
(when
(at-type? "binary")
(or (at-type? "binary") (at-type? "bar"))
(let ((t (peek-tok)))
(begin
(advance-tok!)