mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-25 13:05:05 +02:00
Do not keep global just because it refers to itself
This commit is contained in:
parent
503770a899
commit
621463216f
1 changed files with 6 additions and 2 deletions
|
@ -1140,7 +1140,6 @@
|
||||||
;; Many improvements can be made, including:
|
;; Many improvements can be made, including:
|
||||||
;;
|
;;
|
||||||
;; TODO: remove unused locals
|
;; TODO: remove unused locals
|
||||||
;; TODO: do not keep defines that call themselves recursively
|
|
||||||
(define (filter-unused-variables asts)
|
(define (filter-unused-variables asts)
|
||||||
(define (do-filter code)
|
(define (do-filter code)
|
||||||
(let ((all-fv (apply ;; More efficient way to do this?
|
(let ((all-fv (apply ;; More efficient way to do this?
|
||||||
|
@ -1148,7 +1147,12 @@
|
||||||
(map
|
(map
|
||||||
(lambda (ast)
|
(lambda (ast)
|
||||||
(if (define? ast)
|
(if (define? ast)
|
||||||
(free-vars (define->exp ast))
|
(let ((var (define->var ast)))
|
||||||
|
;; Do not keep global that refers to itself
|
||||||
|
(filter
|
||||||
|
(lambda (v)
|
||||||
|
(not (equal? v var)))
|
||||||
|
(free-vars (define->exp ast))))
|
||||||
(free-vars ast)))
|
(free-vars ast)))
|
||||||
code))))
|
code))))
|
||||||
(filter
|
(filter
|
||||||
|
|
Loading…
Add table
Reference in a new issue