From 6bfbdfd5820220a9321b528013a3c0f15a213fce Mon Sep 17 00:00:00 2001 From: Casey Klein Date: Wed, 17 Nov 2010 21:03:30 -0600 Subject: [PATCH] Fixes another bug in continuation mark collection --- collects/redex/examples/delim-cont/meta.rkt | 2 +- collects/redex/examples/delim-cont/test.rkt | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/collects/redex/examples/delim-cont/meta.rkt b/collects/redex/examples/delim-cont/meta.rkt index a0da71b7e4..84f947c4d1 100644 --- a/collects/redex/examples/delim-cont/meta.rkt +++ b/collects/redex/examples/delim-cont/meta.rkt @@ -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 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 (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 [(get-marks (if E_1 e e) v_1 e_2) (get-marks E_1 v_1 e_2)] diff --git a/collects/redex/examples/delim-cont/test.rkt b/collects/redex/examples/delim-cont/test.rkt index 6b928664fe..155bc2804d 100644 --- a/collects/redex/examples/delim-cont/test.rkt +++ b/collects/redex/examples/delim-cont/test.rkt @@ -371,6 +371,18 @@ 1 2 (λ () (if (abort 0 (current-marks 1 0)) 3 4))) (λ (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)))) ;; R6RS dynamic-wind ----------------------------------------