Opened 16 years ago
Closed 16 years ago
#131 closed defect (fixed)
check for defined exports may be confused by renaming
| Reported by: | felix winkelmann | Owned by: | felix winkelmann |
|---|---|---|---|
| Priority: | major | Milestone: | 4.5.0 |
| Component: | expander | Version: | 4.2.x |
| Keywords: | modules | Cc: | |
| Estimated difficulty: |
Description
If a macro expands into a module-definition, the check for missing export definitions appears not to take renaming into account:
(define-syntax testm
(syntax-rules ()
((_)
(module foo (bar)
(import scheme)
(define bar 1)))))
gives an "unresolved module" error.
Possibly, these tests using assq are incorrect and should lookup the id first (##sys#finalize-module in expand.scm):
(let ((def (assq id dlist))) (if (and def (symbol? (cdr def))) (cdr def) (let ((a (assq id (##sys#current-environment))))
Change History (3)
comment:1 Changed 16 years ago by
| Milestone: | 4.3.0 → 4.4.0 |
|---|
comment:3 Changed 16 years ago by
| Milestone: | → 4.5.0 |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
Fixed in be4ec378a6f47a94805652b6f126e95967cbb805 (experimental). Module forms are now completely stripped before being processed by the interpreter or compiler.
Note: See
TracTickets for help on using
tickets.

This is a major bug, but can be postponed for a later release.