source: project/chicken/trunk/patches/record-rename.diff @ 13337

Last change on this file since 13337 was 13337, checked in by felix winkelmann, 11 years ago

mingw/msys fix for test suite

File size: 1.9 KB
  • chicken-syntax.scm

     
    4646  (lambda (x r c)
    4747    (##sys#check-syntax 'define-record x '(_ symbol . #(symbol 0)))
    4848    (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))
    4953           (slots (cddr x))
    50            (prefix (symbol->string name))
    5154           (setters (memq #:record-setters ##sys#features))
    5255           (%begin (r 'begin))
    5356           (%define (r 'define))
     
    807810              'define-record-printer (cons head body)
    808811              '((symbol symbol symbol) . #(_ 1)))
    809812             `(##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))
    811818               (,(r 'lambda) ,(##sys#slot head 1) ,@body)) ]
    812819            [else
    813820             (##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) ] ) ))))
    815828
    816829
    817830;;; Exceptions:
     
    874887 (##sys#er-transformer
    875888  (lambda (form r c)
    876889    (##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)))
    878895          (conser (caddr form))
    879896          (pred (cadddr form))
    880897          (slots (cddddr form))
Note: See TracBrowser for help on using the repository browser.