~ chicken-core (chicken-5) 4f4738fdec98062301fa8f970eca9e92a67bccb9
commit 4f4738fdec98062301fa8f970eca9e92a67bccb9 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Tue Jun 12 09:39:29 2012 +0200 Commit: Christian Kellermann <ckeen@pestilenz.org> CommitDate: Tue Jun 12 10:15:06 2012 +0200 update module-exist-list when doing an deferred export in a module with wildcard export list (contributed by 'megane') Signed-off-by: felix <felix@call-with-current-continuation.org> Signed-off-by: Christian Kellermann <ckeen@pestilenz.org> diff --git a/modules.scm b/modules.scm index fd17c627..1a4cadad 100644 --- a/modules.scm +++ b/modules.scm @@ -157,11 +157,13 @@ (##sys#current-module mod)))))) (define (##sys#add-to-export-list mod exps) - (set-module-export-list! - mod - (let ((xl (module-export-list mod))) - (or (eq? xl #t) ; ==> #t - (append xl exps))))) + (let ((xl (module-export-list mod))) + (if (eq? xl #t) + (let ((el (module-exist-list mod))) + (set-module-exist-list! + mod (append el exps))) + (set-module-export-list! + mod (append xl exps))))) (define (##sys#toplevel-definition-hook sym mod exp val) #f) diff --git a/tests/module-tests.scm b/tests/module-tests.scm index 1bbacfab..ca1de1a4 100644 --- a/tests/module-tests.scm +++ b/tests/module-tests.scm @@ -225,5 +225,28 @@ a) 1) +;; #865 - "*" export list needs special treatment when using "export" +;; (fix contributed by "megane") + +(module + m22 + * + (import chicken scheme) + (define b 2)) + +(module + m23 + * + (import chicken scheme) + (import m22) + (export b) ) + +(test-equal + "`*' export-list + explicit export" + (module m24 () + (import m23) + b) + 2) + (test-end "modules")Trap