From 9e7a4e9e1dbb6b46be8020fe9eb5766f00b80b37 Mon Sep 17 00:00:00 2001 From: John Clements Date: Tue, 18 Nov 2008 18:26:31 +0000 Subject: [PATCH] fixed felix's bug svn: r12495 --- collects/stepper/private/lifting.ss | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/collects/stepper/private/lifting.ss b/collects/stepper/private/lifting.ss index 84739085b8..b120af7042 100644 --- a/collects/stepper/private/lifting.ss +++ b/collects/stepper/private/lifting.ss @@ -54,7 +54,10 @@ ;; distinguish a top-level begin from one that's the result of some evaluation. ;; I think for the moment that it will solve our problem simply to remove the ;; special case for begin at the top level. JBC, 2006-10-09 - + + ;; ... aaaand, yep, there's a bug. The input is not fully-expanded syntax, and + ;; therefore _can_ include a two-branched 'if' (because the reconstructor produces it.) + ;; (define (top-level-expr-iterator stx context-so-far) (let ([try (try->offset-try (make-try-all-subexprs stx 'top-level context-so-far))]) @@ -120,6 +123,8 @@ (loop (+ count 1) (cdr clauses))))] [(if test then else) (try-exprs-offset 1 #'(test then else))] + [(if test then) + (try-exprs-offset 1 #'(test then))] [(begin . bodies) (try-exprs-offset 1 #'bodies)] [(begin0 . bodies)