racket/unit: fix #:omit-constructor
Closes #1006, with a test case based on that report.
This commit is contained in:
parent
38317b87c2
commit
f09c78b5f4
|
@ -2185,3 +2185,17 @@
|
||||||
(test '(0 0) (dynamic-require ''check-define-values-invoke-unit-spec 'results))
|
(test '(0 0) (dynamic-require ''check-define-values-invoke-unit-spec 'results))
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
|
|
||||||
|
(let ((s 1))
|
||||||
|
(define-signature sig (an-s (struct s (x y) #:omit-constructor)))
|
||||||
|
(test '(1 2)
|
||||||
|
(invoke-unit
|
||||||
|
(compound-unit (import) (export)
|
||||||
|
(link (((S : sig)) (unit (import) (export sig)
|
||||||
|
(define-struct s (x y))
|
||||||
|
(define an-s (s 1 2))))
|
||||||
|
(() (unit (import sig) (export)
|
||||||
|
(match an-s
|
||||||
|
[(s x y) (list x y)]))
|
||||||
|
S))))))
|
||||||
|
|
||||||
|
|
|
@ -270,7 +270,9 @@
|
||||||
(cons opt-cname opt-cname))]
|
(cons opt-cname opt-cname))]
|
||||||
[extra-make? #f]
|
[extra-make? #f]
|
||||||
[else (cons def-cname #'name)])]
|
[else (cons def-cname #'name)])]
|
||||||
[(self-ctr?) (and cname (bound-identifier=? #'name (cdr cname)))])
|
[(self-ctr?) (and cname
|
||||||
|
(bound-identifier=? #'name (cdr cname))
|
||||||
|
(not no-ctr?))])
|
||||||
(cons
|
(cons
|
||||||
#`(define-syntaxes (name)
|
#`(define-syntaxes (name)
|
||||||
#,(let ([e (build-struct-expand-info
|
#,(let ([e (build-struct-expand-info
|
||||||
|
|
Loading…
Reference in New Issue
Block a user