diff --git a/collects/plai/mutator.rkt b/collects/plai/mutator.rkt index 3ab24e9da3..5513d7982c 100644 --- a/collects/plai/mutator.rkt +++ b/collects/plai/mutator.rkt @@ -178,8 +178,8 @@ (quasisyntax/loc stx (let ([closure (lambda (id ...) (syntax-parameterize ([mutator-env-roots - (list* #'id ... - (syntax-parameter-value #'mutator-env-roots))] + (list #'id ... + #'free-id ...)] [mutator-tail-call? #t]) (->address body)))]) (add-closure-env! closure (list (make-env-root free-id) ...)) diff --git a/collects/tests/plai/gc/good-mutators/danny-bug.rkt b/collects/tests/plai/gc/good-mutators/danny-bug.rkt new file mode 100644 index 0000000000..3ad88ecdda --- /dev/null +++ b/collects/tests/plai/gc/good-mutators/danny-bug.rkt @@ -0,0 +1,12 @@ +#lang plai/mutator +(allocator-setup "../good-collectors/good-collector.rkt" 6) + +(define + proc + (let* ([not-root 1] ; 2 + [root 2]) ; 4 + (lambda () ; 6 + 3 + root))) + +(proc) \ No newline at end of file