schemify: fix undefined checking when constants no enforced
Related to #3325
This commit is contained in:
parent
4d8851d1be
commit
2a66eddcc9
|
@ -1029,6 +1029,12 @@
|
||||||
(err/rt-test (eval '(module m racket/base (define x 2) (provide x)))
|
(err/rt-test (eval '(module m racket/base (define x 2) (provide x)))
|
||||||
exn:fail:contract:variable?)))
|
exn:fail:contract:variable?)))
|
||||||
|
|
||||||
|
(parameterize ([current-namespace (make-base-namespace)])
|
||||||
|
(parameterize ([compile-enforce-module-constants #f])
|
||||||
|
(eval '(module m racket/base (eq? y y) (define y 2))))
|
||||||
|
(err/rt-test/once (eval '(dynamic-require ''m #f))
|
||||||
|
exn:fail:contract:variable?))
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Check JIT treatement of seemingly constant imports
|
;; Check JIT treatement of seemingly constant imports
|
||||||
|
|
||||||
|
|
|
@ -17438,7 +17438,7 @@
|
||||||
app_0
|
app_0
|
||||||
(if enforce-constant?_0
|
(if enforce-constant?_0
|
||||||
'not-ready
|
'not-ready
|
||||||
'set!ed)))
|
'set!ed-too-early)))
|
||||||
(for-loop_1 rest_1))))
|
(for-loop_1 rest_1))))
|
||||||
(values)))))))
|
(values)))))))
|
||||||
(for-loop_1 ids_0)))
|
(for-loop_1 ids_0)))
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
'not-ready
|
'not-ready
|
||||||
;; If constants should not be enforced, then
|
;; If constants should not be enforced, then
|
||||||
;; treat all variable as mutated:
|
;; treat all variable as mutated:
|
||||||
'set!ed)))]
|
'set!ed-too-early)))]
|
||||||
[`,_ (void)]))
|
[`,_ (void)]))
|
||||||
;; Walk through the body:
|
;; Walk through the body:
|
||||||
(for/fold ([prev-knowns knowns]) ([form (in-list l)])
|
(for/fold ([prev-knowns knowns]) ([form (in-list l)])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user