Ticket #435: strip-vectors-syntax.patch

File strip-vectors-syntax.patch, 862 bytes (added by sjamaan, 13 years ago)

Fix

  • expand.scm

    diff --git a/expand.scm b/expand.scm
    index 6e9dff4..22b6a61 100644
    a b  
    111111              (set! seen (cons (cons x vec) seen))
    112112              (do ((i 0 (fx+ i 1)))
    113113                  ((fx>= i len) vec)
    114                 (##sys#setslot vec i (##sys#slot x i)))))
     114                (##sys#setslot vec i (walk (##sys#slot x i))))))
    115115           (else x)))))
    116116
    117117(define strip-syntax ##sys#strip-syntax)
  • tests/syntax-tests.scm

    diff --git a/tests/syntax-tests.scm b/tests/syntax-tests.scm
    index 49aafcb..a66ef76 100644
    a b  
    165165    (let ((a 2))
    166166      (t '(1 2 3 a) (foo a)))))
    167167
     168;; Strip-syntax on vectors:
     169(let-syntax
     170    ((foo (syntax-rules ()
     171            ((_)
     172             '#(b)))))
     173  (t '#(b) (foo)))
     174
    168175(define-syntax kw
    169176  (syntax-rules (baz)
    170177    ((_ baz) "baz")