diff options
Diffstat (limited to 'csc/match.csc')
| -rw-r--r-- | csc/match.csc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/csc/match.csc b/csc/match.csc index ad9b56a..f6ed477 100644 --- a/csc/match.csc +++ b/csc/match.csc @@ -25,7 +25,7 @@ (define (matcher x) (unless (predicate x) (raise *no-match*)) - (list (field-getter* x) ...)))))) + (list (cons 'type 'name) (cons 'field-name* (field-getter* x)) ...)))))) (define-syntax match-pattern @@ -51,7 +51,7 @@ (match-pattern (car y) pattern result result* ...) (raise *no-match*)))) ((match-pattern x (% record-matcher . patterns) result result* ...) - (match-pattern (record-matcher x) patterns result result* ...)) + (match-pattern (map cdr (cdr (record-matcher x))) patterns result result* ...)) ((match-pattern x (pattern . rest) result result* ...) (let ((y x)) (if (pair? y) |
