Okay, let's try using the "internal" names instead of the "external", which
might make some errors more obvious. svn: r13141 original commit: bd802748e03c3434195279056f4223b94ddfc48f
This commit is contained in:
parent
f5961b496a
commit
650f7a3219
|
@ -471,12 +471,12 @@
|
||||||
|
|
||||||
(define-syntax-parameter current-unit-blame-stx (lambda (stx) #'(#%variable-reference)))
|
(define-syntax-parameter current-unit-blame-stx (lambda (stx) #'(#%variable-reference)))
|
||||||
|
|
||||||
(define-for-syntax (make-import-unboxing ext-var loc ctc)
|
(define-for-syntax (make-import-unboxing var loc ctc)
|
||||||
(if ctc
|
(if ctc
|
||||||
(quasisyntax/loc (error-syntax)
|
(quasisyntax/loc (error-syntax)
|
||||||
(quote-syntax (contract #,ctc (unbox #,loc) 'cant-happen
|
(quote-syntax (contract #,ctc (unbox #,loc) 'cant-happen
|
||||||
(current-unit-blame-stx)
|
(current-unit-blame-stx)
|
||||||
#,(id->contract-src-info ext-var))))
|
#,(id->contract-src-info var))))
|
||||||
(quasisyntax/loc (error-syntax)
|
(quasisyntax/loc (error-syntax)
|
||||||
(quote-syntax (unbox #,loc)))))
|
(quote-syntax (unbox #,loc)))))
|
||||||
|
|
||||||
|
@ -564,17 +564,16 @@
|
||||||
(let-values ([(iloc ...)
|
(let-values ([(iloc ...)
|
||||||
(vector->values (hash-table-get import-table import-key) 0 icount)]
|
(vector->values (hash-table-get import-table import-key) 0 icount)]
|
||||||
...)
|
...)
|
||||||
(letrec-syntaxes (#,@(map (lambda (ivs evs ils ics)
|
(letrec-syntaxes (#,@(map (lambda (ivs ils ics)
|
||||||
(quasisyntax/loc (error-syntax)
|
(quasisyntax/loc (error-syntax)
|
||||||
[#,ivs
|
[#,ivs
|
||||||
(make-id-mappers
|
(make-id-mappers
|
||||||
#,@(map (lambda (ev l c)
|
#,@(map (lambda (iv l c)
|
||||||
(make-import-unboxing ev l c))
|
(make-import-unboxing iv l c))
|
||||||
(syntax->list evs)
|
(syntax->list ivs)
|
||||||
(syntax->list ils)
|
(syntax->list ils)
|
||||||
ics))]))
|
ics))]))
|
||||||
(syntax->list #'((int-ivar ...) ...))
|
(syntax->list #'((int-ivar ...) ...))
|
||||||
(syntax->list #'((ext-ivar ...) ...))
|
|
||||||
(syntax->list #'((iloc ...) ...))
|
(syntax->list #'((iloc ...) ...))
|
||||||
(map cadddr import-sigs)))
|
(map cadddr import-sigs)))
|
||||||
(letrec-syntaxes+values (renames ...
|
(letrec-syntaxes+values (renames ...
|
||||||
|
@ -583,7 +582,6 @@
|
||||||
(unit-body #,(error-syntax)
|
(unit-body #,(error-syntax)
|
||||||
(int-ivar ... ...)
|
(int-ivar ... ...)
|
||||||
(int-evar ... ...)
|
(int-evar ... ...)
|
||||||
(ext-evar ... ...)
|
|
||||||
(eloc ... ...)
|
(eloc ... ...)
|
||||||
(ectc ... ...)
|
(ectc ... ...)
|
||||||
. body)))))
|
. body)))))
|
||||||
|
@ -601,7 +599,7 @@
|
||||||
|
|
||||||
(define-syntax (unit-body stx)
|
(define-syntax (unit-body stx)
|
||||||
(syntax-case stx ()
|
(syntax-case stx ()
|
||||||
((_ err-stx ivars evars ext-evars elocs ectcs body ...)
|
((_ err-stx ivars evars elocs ectcs body ...)
|
||||||
(parameterize ((error-syntax #'err-stx))
|
(parameterize ((error-syntax #'err-stx))
|
||||||
(let* ([expand-context (generate-expand-context)]
|
(let* ([expand-context (generate-expand-context)]
|
||||||
[def-ctx (syntax-local-make-definition-context)]
|
[def-ctx (syntax-local-make-definition-context)]
|
||||||
|
@ -682,7 +680,7 @@
|
||||||
;; Mark exported names and
|
;; Mark exported names and
|
||||||
;; check that all exported names are defined (as var):
|
;; check that all exported names are defined (as var):
|
||||||
(for-each
|
(for-each
|
||||||
(lambda (name loc var ctc)
|
(lambda (name loc ctc)
|
||||||
(let ([v (bound-identifier-mapping-get defined-names-table
|
(let ([v (bound-identifier-mapping-get defined-names-table
|
||||||
name
|
name
|
||||||
(lambda () #f))])
|
(lambda () #f))])
|
||||||
|
@ -696,10 +694,9 @@
|
||||||
v
|
v
|
||||||
(λ (e)
|
(λ (e)
|
||||||
#`(contract #,(cdr (syntax-e ctc)) #,e (current-unit-blame-stx)
|
#`(contract #,(cdr (syntax-e ctc)) #,e (current-unit-blame-stx)
|
||||||
'cant-happen #,(id->contract-src-info var)))))))
|
'cant-happen #,(id->contract-src-info e)))))))
|
||||||
(syntax->list (localify #'evars def-ctx))
|
(syntax->list (localify #'evars def-ctx))
|
||||||
(syntax->list #'elocs)
|
(syntax->list #'elocs)
|
||||||
(syntax->list #'ext-evars)
|
|
||||||
(syntax->list #'ectcs))
|
(syntax->list #'ectcs))
|
||||||
|
|
||||||
;; Check that none of the imports are defined
|
;; Check that none of the imports are defined
|
||||||
|
|
Loading…
Reference in New Issue
Block a user