commit 2fc13d178dd0180d1e3d9b517cc81dd24126d83c
parent d0712ceee237ee1469f4b4c19d4adbaf0a176bc0
Author: Ryan Culpepper <ryanc@racket-lang.org>
Date: Mon, 22 Oct 2012 17:26:33 -0400
macro-stepper: show errors in provide expansion
closes PR 13018
original commit: 1137b444ad8393cd01faff18602e3facc3322c89
Diffstat:
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/collects/macro-debugger/model/reductions.rkt b/collects/macro-debugger/model/reductions.rkt
@@ -222,12 +222,7 @@
[#:learn (list #'?var)])]
[(Wrap p:provide (e1 e2 rs ?1 inners ?2))
- (let ([wrapped-inners
- (for/list ([inner (in-list inners)])
- (match inner
- [(Wrap deriv (e1 e2))
- (make local-expansion e1 e2
- #f e1 inner #f e2 #f)]))])
+ (let ([wrapped-inners (map expr->local-action inners)])
(R [! ?1]
[#:pattern ?form]
[#:pass1]
@@ -668,7 +663,9 @@
[#:do (DEBUG (printf "** module begin pass 2\n"))]
[ModulePass ?forms pass2]
;; ignore pass3 for now: only provides
- )]))
+ [#:new-local-context
+ [#:pattern ?form]
+ [LocalActions ?form (map expr->local-action (or pass3 null))]])]))
;; ModulePass : (list-of MBRule) -> RST
(define (ModulePass mbrules)
@@ -796,6 +793,12 @@
(when #f
(apply error sym args)))
+(define (expr->local-action d)
+ (match d
+ [(Wrap deriv (e1 e2))
+ (make local-expansion e1 e2
+ #f e1 d #f e2 #f)]))
+
;; opaque-table
;; Weakly remembers assoc between opaque values and
;; actual syntax, so that actual can be substituted in