Switch tc-structs over to syntax classes.
This commit is contained in:
parent
7f268e67de
commit
575419bc8b
|
@ -9,11 +9,10 @@
|
||||||
(private parse-type syntax-properties)
|
(private parse-type syntax-properties)
|
||||||
(types abbrev utils resolve substitute type-table struct-table)
|
(types abbrev utils resolve substitute type-table struct-table)
|
||||||
(env global-env type-name-env tvar-env)
|
(env global-env type-name-env tvar-env)
|
||||||
(utils tc-utils)
|
(utils tc-utils syntax-classes)
|
||||||
(typecheck def-binding)
|
(typecheck def-binding)
|
||||||
(for-syntax syntax/parse racket/base)
|
(for-syntax syntax/parse racket/base)
|
||||||
(for-template racket/base
|
(for-template racket/base))
|
||||||
"internal-forms.rkt"))
|
|
||||||
|
|
||||||
(provide tc/struct name-of-struct d-s
|
(provide tc/struct name-of-struct d-s
|
||||||
refine-struct-variance!
|
refine-struct-variance!
|
||||||
|
@ -50,16 +49,8 @@
|
||||||
|
|
||||||
(define (name-of-struct stx)
|
(define (name-of-struct stx)
|
||||||
(syntax-parse stx
|
(syntax-parse stx
|
||||||
#:literal-sets (kernel-literals)
|
[(~or t:typed-struct t:typed-struct/exec)
|
||||||
#:literals (define-typed-struct-internal values)
|
#:with nm/par:parent #'t.nm
|
||||||
[(#%define-values () (begin (quote-syntax
|
|
||||||
(~or
|
|
||||||
(define-typed-struct-internal
|
|
||||||
(~optional (ids:id ...))
|
|
||||||
nm/par:parent . rest)
|
|
||||||
(define-typed-struct/exec-internal
|
|
||||||
nm/par:parent . rest)))
|
|
||||||
(#%plain-app values)))
|
|
||||||
#'nm/par.name]))
|
#'nm/par.name]))
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user