Issue #355 - Import renamed identifiers

Ensure renamed identifiers are loaded into the environment when performing an import.
This commit is contained in:
Justin Ethier 2020-07-28 17:49:44 -04:00
parent 974ac8f2ab
commit ab4f21fcc8

View file

@ -755,7 +755,11 @@
(explicit-lib-names (explicit-lib-names
(map lib:import->library-name (lib:list->import-set import-sets))) (map lib:import->library-name (lib:list->import-set import-sets)))
;; All dependent libraries ;; All dependent libraries
(lib-names (lib:get-all-import-deps import-sets *append-dirs* *prepend-dirs*))) (lib-names (lib:get-all-import-deps import-sets *append-dirs* *prepend-dirs*))
(renamed-syms (filter pair?
(map car
(lib:imports->idb import-sets *append-dirs* *prepend-dirs*))))
)
(for-each (for-each
(lambda (lib-name) (lambda (lib-name)
(let* ((us (lib:name->unique-string lib-name)) (let* ((us (lib:name->unique-string lib-name))
@ -779,6 +783,15 @@
(cons (cons
(car *global-environment*) (car *global-environment*)
(setup-environment *initial-environment*))) (setup-environment *initial-environment*)))
;; Load any renamed exports into the environment
(for-each
(lambda (rename/base)
(env:define-variable!
(car rename/base)
(env:_lookup-variable-value (cdr rename/base) *global-environment*)
*global-environment*))
renamed-syms)
#t)) #t))
;; Is the given library loaded? ;; Is the given library loaded?