From: Chris Hanson Date: Tue, 17 Nov 1987 00:25:34 +0000 (+0000) Subject: Fix bug in `scan-defines' in which an open-block whose body was X-Git-Tag: 20090517-FFI~13061 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=e9fb4fe8818dec50cc3675b5fecda9e2b8f478ab;p=mit-scheme.git Fix bug in `scan-defines' in which an open-block whose body was another open-block was not being scanned correctly. This resulted in `sf' creating weird output when there were declarations being passed to the compiler, that subsequently confused the compiler into signalling an error. --- diff --git a/v7/src/runtime/scan.scm b/v7/src/runtime/scan.scm index 9847bea7c..8bbc62d33 100644 --- a/v7/src/runtime/scan.scm +++ b/v7/src/runtime/scan.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/scan.scm,v 13.41 1987/01/23 00:18:56 jinx Rel $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/scan.scm,v 13.42 1987/11/17 00:25:34 cph Rel $ ;;; ;;; Copyright (c) 1987 Massachusetts Institute of Technology ;;; @@ -89,11 +89,12 @@ (if (and (vector? first) (not (zero? (vector-length first))) (eq? (vector-ref first 0) open-block-tag)) - (lambda (names declarations body) - (receiver (append (vector-ref first 1) names) - (append (vector-ref first 2) declarations) - (cons-sequence (&triple-third expression) - body))) + (scan-loop + (&triple-third expression) + (lambda (names declarations body) + (receiver (append (vector-ref first 1) names) + (append (vector-ref first 2) declarations) + body))) (scan-loop (&triple-third expression) (scan-loop (&triple-second expression) (scan-loop first @@ -117,7 +118,7 @@ (receiver names declarations (cons-sequence expression body)))))) - + (define (cons-sequence action sequence) (cond ((primitive-type? sequence-2-type sequence) (&typed-triple-cons sequence-3-type @@ -210,4 +211,4 @@ (&triple-third open-block)))) ;;; end LET -) +) \ No newline at end of file