Revert previous change

This commit is contained in:
Justin Ethier 2019-02-27 16:03:19 -05:00
parent 1f8a824bda
commit d9f63a85b4

View file

@ -1841,6 +1841,8 @@
(lambda args (lambda args
(let* ((field-tags (vector-ref name 2)) (let* ((field-tags (vector-ref name 2))
(field-values (list->vector args))) (field-values (list->vector args)))
(when (not (equal? (length field-tags) (length args)))
(error "invalid number of arguments passed to record type constructor" args))
(vector record-marker name field-values)))) (vector record-marker name field-values))))
(define (type-slot-offset name sym) (define (type-slot-offset name sym)
(let ((field-tags (vector-ref name 2))) (let ((field-tags (vector-ref name 2)))
@ -1939,10 +1941,18 @@
fields) fields)
;; constructor ;; constructor
(,_define ,make (,_define ,make
(,_lambda ,make-fields (,_let ((%make (,(rename 'make-constructor/args)
(,(rename 'vector) ,(symbol->string make) ;(identifier->symbol make))
',record-marker ,name)))
,name (,_lambda ,make-fields
(,(rename 'vector) (%make ,@make-fields))))
,@make-fields))))))))) ; Possible alternate version that inlines make-constructor/args
;(,_define ,make
; (,_lambda ,make-fields
; (,(rename 'vector)
; ',record-marker
; ,name
; (,(rename 'vector)
; ,@make-fields))))
)))))
)) ))