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
(,_let ((%make (,(rename 'make-constructor/args)
,(symbol->string make) ;(identifier->symbol make))
,name)))
(,_lambda ,make-fields (,_lambda ,make-fields
(,(rename 'vector) (%make ,@make-fields))))
',record-marker ; Possible alternate version that inlines make-constructor/args
,name ;(,_define ,make
(,(rename 'vector) ; (,_lambda ,make-fields
,@make-fields))))))))) ; (,(rename 'vector)
; ',record-marker
; ,name
; (,(rename 'vector)
; ,@make-fields))))
)))))
)) ))