From 08ef0f366c8c1891f24ec20055f89e8272a6effd Mon Sep 17 00:00:00 2001 From: John Clements Date: Sat, 15 Jul 2006 21:22:08 +0000 Subject: [PATCH] ... svn: r3715 --- collects/stepper/private/model.ss | 1 + collects/stepper/private/reconstruct.ss | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/collects/stepper/private/model.ss b/collects/stepper/private/model.ss index 541fd85345..d91c6b5687 100644 --- a/collects/stepper/private/model.ss +++ b/collects/stepper/private/model.ss @@ -298,6 +298,7 @@ #;(void) ) (lambda (expanded continue-thunk) ; iter + (r:reset-special-values) (if (eof-object? expanded) (begin (receive-result (make-finished-stepping))) diff --git a/collects/stepper/private/reconstruct.ss b/collects/stepper/private/reconstruct.ss index ab370db504..54dbd2a313 100644 --- a/collects/stepper/private/reconstruct.ss +++ b/collects/stepper/private/reconstruct.ss @@ -39,7 +39,9 @@ [final-mark-list? (-> mark-list? boolean?)] [skip-step? (-> break-kind? (or/c mark-list? false/c) render-settings? boolean?)] - [step-was-app? (-> mark-list? boolean?)]) + [step-was-app? (-> mark-list? boolean?)] + + [reset-special-values (-> any)]) (define nothing-so-far (gensym "nothing-so-far-")) @@ -217,8 +219,14 @@ [else (error 'find-special-name "couldn't find expanded name for ~a" name)])]) (eval just-the-fn))) - (define special-list-value (find-special-value 'list '(3))) - (define special-cons-value (find-special-value 'cons '(3 empty))) + ;; these are delayed so that they use the userspace expander. I'm sure + ;; there's a more robust & elegant way to do this. + (define special-list-value #f) + (define special-cons-value #f) + + (define (reset-special-values) + (set! special-list-value (find-special-value 'list '(3))) + (set! special-cons-value (find-special-value 'cons '(3 empty)))) (define (second-arg-is-list? mark-list) (let ([arg-val (lookup-binding mark-list (get-arg-var 2))])