mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-18 09:40:25 +02:00
* boot-9.scm (make-record-type, record-constructor): Don't assume
the empty list is false when parsing the argument list.
This commit is contained in:
parent
ddef832786
commit
8e69342425
1 changed files with 2 additions and 2 deletions
|
@ -391,7 +391,7 @@
|
|||
(and (struct? obj) (eq? record-type-vtable (struct-vtable obj))))
|
||||
|
||||
(define (make-record-type type-name fields . opt)
|
||||
(let ((printer-fn (and opt (car opt))))
|
||||
(let ((printer-fn (and (pair? opt) (car opt))))
|
||||
(let ((struct (make-struct record-type-vtable 0
|
||||
(make-struct-layout (apply symbol-append (map (lambda (f) "pw") fields)))
|
||||
type-name
|
||||
|
@ -416,7 +416,7 @@
|
|||
(error 'not-a-record-type obj)))
|
||||
|
||||
(define (record-constructor rtd . opt)
|
||||
(let ((field-names (if opt (car opt) (record-type-fields rtd))))
|
||||
(let ((field-names (if (pair? opt) (car opt) (record-type-fields rtd))))
|
||||
(eval `(lambda ,field-names
|
||||
(make-struct ',rtd 0 ,@(map (lambda (f)
|
||||
(if (memq f field-names)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue