source:
project/chicken/trunk/patches/record-rename.diff
@
13337
Last change on this file since 13337 was 13337, checked in by , 12 years ago | |
---|---|
File size: 1.9 KB |
-
chicken-syntax.scm
46 46 (lambda (x r c) 47 47 (##sys#check-syntax 'define-record x '(_ symbol . #(symbol 0))) 48 48 (let* ((name (cadr x)) 49 (prefix (symbol->string name)) 50 (name (if (##sys#current-module) 51 (##sys#module-rename name (##sys#module-name (##sys#current-module))) 52 name)) 49 53 (slots (cddr x)) 50 (prefix (symbol->string name))51 54 (setters (memq #:record-setters ##sys#features)) 52 55 (%begin (r 'begin)) 53 56 (%define (r 'define)) … … 807 810 'define-record-printer (cons head body) 808 811 '((symbol symbol symbol) . #(_ 1))) 809 812 `(##sys#register-record-printer 810 ',(##sys#slot head 0) 813 ',(if (##sys#current-module) 814 (##sys#module-rename (##sys#slot head 0) 815 (##sys#module-name 816 (##sys#current-module))) 817 (##sys#slot head 0)) 811 818 (,(r 'lambda) ,(##sys#slot head 1) ,@body)) ] 812 819 [else 813 820 (##sys#check-syntax 'define-record-printer (cons head body) '(symbol _)) 814 `(##sys#register-record-printer ',head ,@body) ] ) )))) 821 `(##sys#register-record-printer 822 ',(if (##sys#current-module) 823 (##sys#module-rename head 824 (##sys#module-name 825 (##sys#current-module))) 826 head) 827 ,@body) ] ) )))) 815 828 816 829 817 830 ;;; Exceptions: … … 874 887 (##sys#er-transformer 875 888 (lambda (form r c) 876 889 (##sys#check-syntax 'define-record-type form '(_ variable #(variable 1) variable . _)) 877 (let* ((t (cadr form)) 890 (let* ((t (if (##sys#current-module) 891 (##sys#module-rename (cadr form) 892 (##sys#module-name 893 (##sys#current-module))) 894 (cadr form))) 878 895 (conser (caddr form)) 879 896 (pred (cadddr form)) 880 897 (slots (cddddr form))
Note: See TracBrowser
for help on using the repository browser.