Fixes another bug in continuation mark collection
This commit is contained in:
parent
8e69aa6ac2
commit
6bfbdfd582
|
@ -77,7 +77,7 @@
|
||||||
[(get-marks-core (% v_2 E_1 v_3) v_1 e_2) (get-marks E_1 v_1 e_2)]
|
[(get-marks-core (% v_2 E_1 v_3) v_1 e_2) (get-marks E_1 v_1 e_2)]
|
||||||
[(get-marks-core (% v_2 e_1 E_1) v_1 e_2) (get-marks E_1 v_1 e_2)]
|
[(get-marks-core (% v_2 e_1 E_1) v_1 e_2) (get-marks E_1 v_1 e_2)]
|
||||||
[(get-marks-core (% E_1 e_1 e_3) v_1 e_2) (get-marks E_1 v_1 e_2)]
|
[(get-marks-core (% E_1 e_1 e_3) v_1 e_2) (get-marks E_1 v_1 e_2)]
|
||||||
[(get-marks-core (dw x e E_1 e) v_1 e_2) (get-marks E_1 v_1 e_2)])
|
[(get-marks-core (dw x e_1 E_1 e_3) v_1 e_2) (get-marks E_1 v_1 e_2)])
|
||||||
|
|
||||||
(define-metafunction grammar
|
(define-metafunction grammar
|
||||||
[(get-marks (if E_1 e e) v_1 e_2) (get-marks E_1 v_1 e_2)]
|
[(get-marks (if E_1 e e) v_1 e_2) (get-marks E_1 v_1 e_2)]
|
||||||
|
|
|
@ -371,6 +371,18 @@
|
||||||
1 2
|
1 2
|
||||||
(λ () (if (abort 0 (current-marks 1 0)) 3 4)))
|
(λ () (if (abort 0 (current-marks 1 0)) 3 4)))
|
||||||
(λ (x) x)))
|
(λ (x) x)))
|
||||||
|
'(<> () [] (list 2)))
|
||||||
|
(test "dw in continuation-marks context"
|
||||||
|
'(<> ()
|
||||||
|
[]
|
||||||
|
(% 0
|
||||||
|
(call/cm 1 2
|
||||||
|
(λ ()
|
||||||
|
(dynamic-wind
|
||||||
|
(λ () #f)
|
||||||
|
(λ () (current-marks 1 0))
|
||||||
|
(λ () #t))))
|
||||||
|
(λ (x) x)))
|
||||||
'(<> () [] (list 2))))
|
'(<> () [] (list 2))))
|
||||||
|
|
||||||
;; R6RS dynamic-wind ----------------------------------------
|
;; R6RS dynamic-wind ----------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue
Block a user