original commit: 4ba9317cb171a066e8e6e1ccb030f0890d0c7f5a
This commit is contained in:
Matthew Flatt 2003-05-19 18:37:29 +00:00
parent 01e8f4e357
commit b0c1a33b7d
2 changed files with 21 additions and 18 deletions

View File

@ -1115,10 +1115,12 @@
verify-struct-shape
signature-vars
signature-structs
do-rename
get-sig
explode-sig
explode-named-sigs
check-signature-unit-body
flatten-signature
flatten-signatures))
flatten-signatures
struct-def-name))

View File

@ -279,21 +279,21 @@
[stx-decls (if (syntax-e (syntax global?))
null
(make-struct-stx-decls ex-sig #f #f (syntax signame) #f))])
(syntax
(begin
(dv/iu
ex-flattened
(let ([unit-var unite])
(verify-linkage-signature-match
'formname
'(invoke)
(list unit-var)
'(ex-exploded)
'(im-explodeds))
(signed-unit-unit unit-var))
prefix
. im-flattened)
. stx-decls))))))))])))
(syntax/loc stx
(begin
(dv/iu
ex-flattened
(let ([unit-var unite])
(verify-linkage-signature-match
'formname
'(invoke)
(list unit-var)
'(ex-exploded)
'(im-explodeds))
(signed-unit-unit unit-var))
prefix
. im-flattened)
. stx-decls))))))))])))
(define-syntax define-values/invoke-unit/sig
(lambda (stx)
@ -319,9 +319,10 @@
(syntax-case stx ()
[(_ signame)
(let ([sig (get-sig 'provide-signature-elements stx #f (syntax signame))])
(let ([flattened (flatten-signature #f sig)])
(let ([flattened (flatten-signature #f sig)]
[structs (map struct-def-name (signature-structs sig))])
(with-syntax ([flattened (map (lambda (x) (datum->syntax-object (syntax signame) x #f))
flattened)])
(append flattened structs))])
(syntax/loc stx
(provide . flattened)))))]))))