documment rename-transformer tracking in set!

This commit is contained in:
Matthew Flatt 2020-09-30 06:25:29 -06:00
parent 838b4e7896
commit 0c9fc7c374

View File

@ -37,7 +37,7 @@ before the merge, the identifier that triggered the macro expansion
property so far. The @racket['origin] property thus records (in
reverse order) the sequence of macro expansions that produced an
expanded expression. Usually, the @racket['origin] value is a
list of identifiers. However, a transformer might return
list of identifiers, but a transformer might return
syntax that has already been expanded, in which case an
@racket['origin] list can contain other lists after a merge. The
@racket[syntax-track-origin] procedure implements this tracking.
@ -82,6 +82,11 @@ Racket adds properties to expanded syntax (often using
identifier to the expansion result as a
@indexed-racket['disappeared-use] property.}
@item{When a @tech{rename transformer} is used to replace a
@racket[set!] target, @racket[syntax-track-origin] is used on the
target identifier (the same as when the identifier is used as an
expression).}
@item{When a reference to an unexported or protected identifier from
a module is discovered, the @indexed-racket['protected] property is
added to the identifier with a @racket[#t] value.}