cs: left associativity for +, *, and variants

This commit is contained in:
Matthew Flatt 2019-01-21 11:00:01 -07:00
parent fa448c5748
commit aed8d4f3e5
3 changed files with 5 additions and 2 deletions

View File

@ -37,6 +37,7 @@
(check-defined 'enable-type-recovery)
(check-defined 'make-wrapper-procedure)
(check-defined 'make-phantom-bytevector)
(check-defined 'enable-arithmetic-left-associative)
;; ----------------------------------------
@ -63,6 +64,7 @@
(generate-inspector-information #f)
(generate-procedure-source-information #f)
(compile-compressed #f)
(enable-arithmetic-left-associative #t)
(define build-dir "")
(define-values (src deps)

View File

@ -1032,4 +1032,5 @@
(set-foreign-eval! eval/foreign)
(enable-arithmetic-left-associative #t)
(expand-omit-library-invocations #t))

View File

@ -175,7 +175,7 @@
(#3%vector-ref vec idx)
(pariah (impersonate-vector-ref vec idx))))
(define (vector*-ref vec idx)
(define/who (vector*-ref vec idx)
(#2%vector-ref vec idx))
(define (impersonate-vector-ref orig idx)
@ -183,7 +183,7 @@
(#%vector? (impersonator-val orig)))
(let loop ([o orig])
(cond
[(#%vector? o) (#%vector-ref o idx)]
[(#%vector? o) (#2%vector-ref o idx)]
[(vector-chaperone? o)
(let* ([o-next (impersonator-next o)]
[val (loop o-next)]