Version: 5.1
32 Finding Mutated Variables
(require unstable/mutated-vars) |
This library is unstable;
compatibility will not be maintained.
See Unstable for more information.
(find-mutated-vars stx [dict]) → dict? |
stx : syntax? |
dict : dict? = (make-immutable-free-id-table) |
Traverses
stx, which should be module-level-form in the sense
of the grammar for
fully-expanded forms,
and records all of the variables that are mutated.
Each mutated variable is added to dict, mapped to
#t. If dict is mutable, as determined by
dict-mutable?, then the table is updated destructively.
Otherwise, the table is updated functionally.
Examples: |
> (define t (find-mutated-vars #'(begin (set! var 'foo) 'bar))) |
> (dict-ref t #'var #f) |
#t |
> (dict-ref t #'other-var #f) |
#f |
> (define tbl (make-free-id-table)) |
> (find-mutated-vars #'(begin (set! var 'foo) 'bar) tbl) |
#<mutable-free-id-table> |
> (dict-ref tbl #'var #f) |
#t |
}