mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-16 09:17:35 +02:00
Avoid naming conflicts with user defined inlines
Do not allow an inline if it conflicts with a global in the current module. This at least attempts to avoid obvious name conflicts. TBD if it is good enough or if additional fixes are necessary.
This commit is contained in:
parent
19e0346968
commit
9b3a4769dc
1 changed files with 6 additions and 1 deletions
|
@ -238,7 +238,12 @@
|
||||||
(cond
|
(cond
|
||||||
((imported? import)
|
((imported? import)
|
||||||
(let ((lib-name (lib:list->import-set import))
|
(let ((lib-name (lib:list->import-set import))
|
||||||
(vars/inlines (eval `( ,inlinable-lambdas-fnc ))))
|
(vars/inlines
|
||||||
|
(filter
|
||||||
|
(lambda (v/i)
|
||||||
|
;; Try to avoid name conflicts
|
||||||
|
(not (member (car v/i) globals)))
|
||||||
|
(eval `( ,inlinable-lambdas-fnc )))))
|
||||||
(trace:info `(DEBUG ,import ,vars/inlines))
|
(trace:info `(DEBUG ,import ,vars/inlines))
|
||||||
;; Register inlines as user-defined primitives
|
;; Register inlines as user-defined primitives
|
||||||
(for-each
|
(for-each
|
||||||
|
|
Loading…
Add table
Reference in a new issue