scheme/class: fix local member names to provide an better message on misuse, and to declare itself as an expression form
svn: r13050
This commit is contained in:
parent
72d904d2d9
commit
a58010fd0d
|
@ -291,7 +291,14 @@
|
||||||
[else
|
[else
|
||||||
(reverse (cons args accum))])))
|
(reverse (cons args accum))])))
|
||||||
|
|
||||||
(define-struct private-name (orig-id gen-id))
|
(define-struct private-name (orig-id gen-id)
|
||||||
|
#:property prop:procedure (lambda (self stx)
|
||||||
|
(if (not (eq? (syntax-local-context) 'expression))
|
||||||
|
#`(#%expression #,stx)
|
||||||
|
(raise-syntax-error
|
||||||
|
#f
|
||||||
|
"unbound local member name"
|
||||||
|
stx))))
|
||||||
|
|
||||||
(define (do-localize orig-id validate-local-member-stx)
|
(define (do-localize orig-id validate-local-member-stx)
|
||||||
(let loop ([id orig-id])
|
(let loop ([id orig-id])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user