* module/ice-9/r6rs-libraries.scm (library): Unwrap the `for' sub-form
during export resolution the same way that `import' does.
* test-suite/tests/rnrs-libraries.test ("implicit phasing"): New test
prefix and tests.
(and-map identifier? #'(name name* ...))
(call-with-values
(lambda ()
- (compute-exports (map resolve-r6rs-interface #'(ispec ...))
- #'(espec ...)))
+ (compute-exports
+ (map (lambda (im)
+ (syntax-case im (for)
+ ((for import-set import-level ...)
+ (resolve-r6rs-interface #'import-set))
+ (import-set (resolve-r6rs-interface #'import-set))))
+ #'(ispec ...))
+ #'(espec ...)))
(lambda (exports re-exports)
(with-syntax (((e ...) exports)
((r ...) re-exports))
(equal? (eval '(double 20) (current-module))
40)))
+;; Guile should ignore explicit phase specifications
+;;
+(with-test-prefix "implicit phasing"
+ (with-test-prefix "in library form"
+ (pass-if "explicit phasing ignored"
+ (import (for (guile) (meta -1))) #t))
+
+ (with-test-prefix "in library form"
+ (pass-if "explicit phasing ignored"
+ (save-module-excursion
+ (lambda ()
+ (library (test)
+ (export)
+ (import (for (guile) (meta -1))))
+ #t)))))
;; Now import features.
;;