diff --git a/collects/plai/mutator.rkt b/collects/plai/mutator.rkt index 4c2dfefd10..f67254ce26 100644 --- a/collects/plai/mutator.rkt +++ b/collects/plai/mutator.rkt @@ -110,7 +110,10 @@ [(_) (mutator-app void)] [(_ e) e] [(_ fe e ...) - (let ([tmp fe]) (mutator-begin e ...))])) + (let ([tmp + (syntax-parameterize ([mutator-tail-call? #f]) + fe)]) + (mutator-begin e ...))])) ; Real Macros (define-syntax-rule (mutator-define-values (id ...) e) diff --git a/collects/tests/plai/gc/good-mutators/let-star.rkt b/collects/tests/plai/gc/other-mutators/begin.rkt similarity index 55% rename from collects/tests/plai/gc/good-mutators/let-star.rkt rename to collects/tests/plai/gc/other-mutators/begin.rkt index 4b76d97492..71f729b3ae 100644 --- a/collects/tests/plai/gc/good-mutators/let-star.rkt +++ b/collects/tests/plai/gc/other-mutators/begin.rkt @@ -1,5 +1,5 @@ #lang plai/mutator -(allocator-setup "../good-collectors/good-collector.rkt" 4) +(allocator-setup "../good-collectors/good-collector.rkt" 6) (define (go) (let ([obj 'z]) diff --git a/collects/tests/plai/gc/run-test.rkt b/collects/tests/plai/gc/run-test.rkt index eb0d42ef0c..9cb6d41c46 100644 --- a/collects/tests/plai/gc/run-test.rkt +++ b/collects/tests/plai/gc/run-test.rkt @@ -51,6 +51,14 @@ (good (heap-loc head) 62 62 "at line 18") (bad (heap-loc head) 62 47 "at line 19") +END + + (capture-output (test-mutator (build-path here "other-mutators" "begin.rkt"))) + => + #<