fix problem with binding of *SL struct-type name and application
This commit is contained in:
parent
716949f499
commit
a7bc964c69
|
@ -771,7 +771,7 @@
|
||||||
(let-values ([(struct: constructor-name predicate-name getter-names setter-names)
|
(let-values ([(struct: constructor-name predicate-name getter-names setter-names)
|
||||||
(make-struct-names name fields stx)]
|
(make-struct-names name fields stx)]
|
||||||
[(field-count) (length fields)]
|
[(field-count) (length fields)]
|
||||||
[(signature-name) (gensym (syntax->datum name))]
|
[(signature-name) (car (generate-temporaries (list name)))]
|
||||||
[(parametric-signature-name)
|
[(parametric-signature-name)
|
||||||
(datum->syntax name
|
(datum->syntax name
|
||||||
(string->symbol
|
(string->symbol
|
||||||
|
@ -907,9 +907,18 @@
|
||||||
#:super struct:struct-info
|
#:super struct:struct-info
|
||||||
;; support `signature'
|
;; support `signature'
|
||||||
#:property
|
#:property
|
||||||
prop:procedure
|
prop:procedure
|
||||||
(lambda (_ stx)
|
(lambda (_ stx)
|
||||||
#'#,signature-name))
|
(syntax-case stx ()
|
||||||
|
[(self . args)
|
||||||
|
(raise-syntax-error
|
||||||
|
#f
|
||||||
|
(string-append
|
||||||
|
"cannot use a signature name after an"
|
||||||
|
" open parenthesis for a function call")
|
||||||
|
stx
|
||||||
|
#'self)]
|
||||||
|
[_ #'#,signature-name])))
|
||||||
;; support `shared'
|
;; support `shared'
|
||||||
(make-info (lambda () compile-info))))
|
(make-info (lambda () compile-info))))
|
||||||
'stepper-skip-completely
|
'stepper-skip-completely
|
||||||
|
|
Loading…
Reference in New Issue
Block a user