identifier-binding: don't lose nominals

Repairs ebef94435c
This commit is contained in:
Matthew Flatt 2018-03-06 13:33:24 -07:00
parent ebef94435c
commit c29e072f7e
3 changed files with 23 additions and 2 deletions

View File

@ -2415,4 +2415,25 @@ case of module-leve bindings; it doesn't cover local bindings.
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(module export-of-force-has-three-different-nominals racket/base
(require racket
racket/promise
racket/private/promise)
(provide force result)
(define-values (result other)
(module->exports (variable-reference->resolved-module-path
(#%variable-reference)))))
(let ([l (dynamic-require ''export-of-force-has-three-different-nominals 'result)])
(define (same-mod? a b) (equal? (module-path-index-resolve a)
(module-path-index-resolve b)))
(define b (cadr (assoc 'force (cdr (assoc 0 l)))))
(test 3 length b)
(test #f same-mod? (car b) (cadr b))
(test #f same-mod? (cadr b) (caddr b))
(test #f same-mod? (car b) (caddr b)))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(report-errs)

View File

@ -345,7 +345,7 @@
id
(module-binding-update ok-binding
#:extra-nominal-bindings
(cons ok-binding
(cons b
(module-binding-extra-nominal-bindings b)))
phase))
(cond

View File

@ -22269,7 +22269,7 @@ static const char *startup_source =
" ok-binding_0)"
"((temp160_0)"
"(cons"
" ok-binding_0"
" b_64"
"(module-binding-extra-nominal-bindings"
" b_64))))"
"(module-binding-update48.1"