Fix doc contract for syntax-local-phase-level
The description does not mention the function ever returning #f and if you look at the implementation in the C code, it always returns the result of `scheme_make_integer`. Also add an example for the entry.
This commit is contained in:
parent
fa81fb35f7
commit
31c60b2893
|
@ -647,11 +647,27 @@ contexts.
|
||||||
@transform-time[]}
|
@transform-time[]}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(syntax-local-phase-level) (or/c exact-integer? #f)]{
|
@defproc[(syntax-local-phase-level) exact-integer?]{
|
||||||
|
|
||||||
During the dynamic extent of a @tech{syntax transformer} application
|
During the dynamic extent of a @tech{syntax transformer} application
|
||||||
by the expander, the result is the @tech{phase level} of the form
|
by the expander, the result is the @tech{phase level} of the form
|
||||||
being expanded. Otherwise, the result is @racket[0].}
|
being expanded. Otherwise, the result is @racket[0].
|
||||||
|
|
||||||
|
@examples[#:eval stx-eval
|
||||||
|
(code:comment "a macro bound at phase 0")
|
||||||
|
(define-syntax (print-phase-level stx)
|
||||||
|
(printf "phase level: ~a~n" (syntax-local-phase-level))
|
||||||
|
#'(void))
|
||||||
|
(require (for-meta 2 racket/base))
|
||||||
|
(begin-for-syntax
|
||||||
|
(code:comment "a macro bound at phase 1")
|
||||||
|
(define-syntax (print-phase-level stx)
|
||||||
|
(printf "phase level: ~a~n" (syntax-local-phase-level))
|
||||||
|
#'(void)))
|
||||||
|
(print-phase-level)
|
||||||
|
(begin-for-syntax (print-phase-level))
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(syntax-local-module-exports [mod-path (or/c module-path?
|
@defproc[(syntax-local-module-exports [mod-path (or/c module-path?
|
||||||
|
|
Loading…
Reference in New Issue
Block a user