1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-13 15:10:34 +02:00

Fix SRFI-9 for records without fields

* module/srfi/srfi-9.scm (define-record-type): Deal with fieldless records.
* test-suite/tests/srfi-9.test: Add a fieldless record definition.
This commit is contained in:
Andreas Rottmann 2010-06-19 14:52:56 +02:00 committed by Andy Wingo
parent b1e5445f77
commit c4a8200fa0
2 changed files with 6 additions and 0 deletions

View file

@ -95,6 +95,8 @@
(lambda (x) (lambda (x)
(define (field-identifiers field-specs) (define (field-identifiers field-specs)
(syntax-case field-specs () (syntax-case field-specs ()
(()
'())
((field-spec) ((field-spec)
(syntax-case #'field-spec () (syntax-case #'field-spec ()
((name accessor) #'(name)) ((name accessor) #'(name))
@ -138,6 +140,8 @@
(define (accessors type-name field-specs indices) (define (accessors type-name field-specs indices)
(syntax-case field-specs () (syntax-case field-specs ()
(()
#'())
((field-spec) ((field-spec)
(syntax-case #'field-spec () (syntax-case #'field-spec ()
((name accessor) ((name accessor)

View file

@ -23,6 +23,8 @@
#:use-module (srfi srfi-9)) #:use-module (srfi srfi-9))
(define-record-type :qux (make-qux) qux?)
(define-record-type :foo (make-foo x) foo? (define-record-type :foo (make-foo x) foo?
(x get-x) (y get-y set-y!)) (x get-x) (y get-y set-y!))