Handbook
Glossary
block-lexenv ( block -- lexenv )
Vocabulary
smalltalk
.
compiler
Inputs
block
an
object
Outputs
lexenv
an
object
Definition
USING:
accessors
assocs
kernel
locals.types
sequences
sets
smalltalk.compiler.assignment
smalltalk.compiler.lexenv
;
IN:
smalltalk.compiler
:
block-lexenv
( block -- lexenv )
[
[
arguments>>
]
[
temporaries>>
]
bi
append
]
[
body>>
[
assigned-locals
]
map
concat
fast-set
]
bi
[
[
dup
dup
]
]
dip
[
in?
[
<local-reader>
]
[
<local>
]
if
]
curry
compose
H{
}
map>assoc
dup
[
local-reader?
]
filter-values
[
<local-writer>
]
assoc-map
<lexenv>
swap
>>local-writers
swap
>>local-readers
;