detect syntax-wrapped keyword for generate-temporaries

svn: r8074
This commit is contained in:
Matthew Flatt 2007-12-19 21:41:28 +00:00
parent 9a4d947174
commit a018da21f7
2 changed files with 8 additions and 5 deletions

View File

@ -78,6 +78,8 @@
(datum->syntax #f (append-number (keyword->string x)))] (datum->syntax #f (append-number (keyword->string x)))]
[(identifier? x) [(identifier? x)
(datum->syntax #f (append-number (syntax-e x)))] (datum->syntax #f (append-number (syntax-e x)))]
[(and (syntax? x) (keyword? (syntax-e x)))
(datum->syntax #f (append-number (keyword->string (syntax-e x))))]
[else [else
(datum->syntax #f (append-number 'temp))]))) (datum->syntax #f (append-number 'temp))])))
l))) l)))

View File

@ -189,8 +189,9 @@ Returns a list of identifiers that are distinct from all other
identifiers. The list contains as many identifiers as identifiers. The list contains as many identifiers as
@scheme[stx-pair] contains elements. The @scheme[stx-pair] argument @scheme[stx-pair] contains elements. The @scheme[stx-pair] argument
must be a syntax pair that can be flattened into a list. The elements must be a syntax pair that can be flattened into a list. The elements
of @scheme[stx-pair] can be anything, but string, symbol, keyword, and of @scheme[stx-pair] can be anything, but string, symbol, keyword
identifier elements will be embedded in the corresponding generated (possibly wrapped as syntax), and identifier elements will be embedded
name (useful for debugging purposes). The generated identifiers are in the corresponding generated name, which is useful for debugging
built with interned symbols (not @scheme[gensym]s), so the limitations purposes. The generated identifiers are built with interned symbols
described with @scheme[current-compile] do not apply.} (not @scheme[gensym]s), so the limitations described with
@scheme[current-compile] do not apply.}