Skip to content

Commit

Permalink
Revert "Revert "fix #18129, optimize some more cases of captured vari…
Browse files Browse the repository at this point in the history
…ables""

This reverts commit d45bcae.
tkelman committed Aug 22, 2016

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 2406ed9 commit fe17200
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions src/julia-syntax.scm
Original file line number Diff line number Diff line change
@@ -2721,25 +2721,27 @@ f(x) = yt(x)
(any vinfo:sa vi))
(let* ((leading
(filter (lambda (x) (and (pair? x)
(or (and (eq? (car x) 'method)
(length> x 2))
(eq? (car x) '=))))
(let ((cx (car x)))
(or (and (eq? cx 'method) (length> x 2))
(eq? cx '=)
(eq? cx 'call)))))
(take-statements-while
(lambda (e)
(or (atom? e)
(memq (car e) '(quote top core line inert local unnecessary
meta inbounds boundscheck simdloop
implicit-global global globalref
const newvar = null method))))
const newvar = null method call))))
(lam:body lam))))
(unused (map cadr leading))
(unused (map cadr (filter (lambda (x) (memq (car x) '(method =)))
leading)))
(def (table)))
;; TODO: reorder leading statements to put assignments where the RHS is
;; `simple-atom?` at the top.
(for-each (lambda (e)
(set! unused (filter (lambda (v) (not (expr-uses-var e v)))
unused))
(if (memq (cadr e) unused)
(if (and (memq (car e) '(method =)) (memq (cadr e) unused))
(put! def (cadr e) #t)))
leading)
(for-each (lambda (v)

0 comments on commit fe17200

Please sign in to comment.