Fixing order of prefix import spec.

This commit is contained in:
Alex Shinn 2011-12-15 22:12:11 +09:00
parent cc5d5d573c
commit 9a8395c69d

View file

@ -69,6 +69,13 @@
(cond (cond
((not (and (pair? x) (list? x))) ((not (and (pair? x) (list? x)))
(error "invalid module syntax" x)) (error "invalid module syntax" x))
((and (eq? 'prefix (car x)) (symbol? (caddr x)) (list? (cadr x)))
(let ((mod-name+imports (resolve-import (cadr x))))
(cons (car mod-name+imports)
(map (lambda (i)
(cons (symbol-append (caddr x) (if (pair? i) (car i) i))
(if (pair? i) (cdr i) i)))
(cdr mod-name+imports)))))
((and (pair? (cdr x)) (pair? (cadr x))) ((and (pair? (cdr x)) (pair? (cadr x)))
(if (memq (car x) '(only except rename)) (if (memq (car x) '(only except rename))
(let* ((mod-name+imports (resolve-import (cadr x))) (let* ((mod-name+imports (resolve-import (cadr x)))
@ -93,13 +100,6 @@
(if rename (cons (cadr rename) (from-id i)) i))) (if rename (cons (cadr rename) (from-id i)) i)))
imp-ids))))) imp-ids)))))
(error "invalid import modifier" x))) (error "invalid import modifier" x)))
((and (eq? 'prefix (car x)) (symbol? (cadr x)) (list? (caddr x)))
(let ((mod-name+imports (resolve-import (caddr x))))
(cons (car mod-name+imports)
(map (lambda (i)
(cons (symbol-append (cadr x) (if (pair? i) (car i) i))
(if (pair? i) (cdr i) i)))
(cdr mod-name+imports)))))
((find-module x) ((find-module x)
=> (lambda (mod) (cons x (%module-exports mod)))) => (lambda (mod) (cons x (%module-exports mod))))
(else (else