From: Guillermo J. Rozas Date: Sat, 19 Feb 1994 15:39:30 +0000 (+0000) Subject: Prevent internally defining a name from causing a duplicate name X-Git-Tag: 20090517-FFI~7279 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=39652054884e95753548b682b16fa445b9f31679;p=mit-scheme.git Prevent internally defining a name from causing a duplicate name error. --- diff --git a/v7/src/runtime/lambdx.scm b/v7/src/runtime/lambdx.scm index 195d5012f..21152ee0e 100644 --- a/v7/src/runtime/lambdx.scm +++ b/v7/src/runtime/lambdx.scm @@ -1,8 +1,8 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/lambdx.scm,v 14.4 1994/01/29 21:53:03 adams Exp $ +$Id: lambdx.scm,v 14.5 1994/02/19 15:39:30 gjr Exp $ -Copyright (c) 1988, 1990 Massachusetts Institute of Technology +Copyright (c) 1988-1994 Massachusetts Institute of Technology This material was developed by the Scheme project at the Massachusetts Institute of Technology, Department of Electrical Engineering and @@ -38,9 +38,17 @@ MIT in each case. |# (declare (usual-integrations)) (define (make-lambda* name required optional rest body) - (scan-defines body - (lambda (auxiliary declarations body*) - (make-lambda name required optional rest auxiliary declarations body*)))) + (scan-defines + body + (lambda (auxiliary declarations body*) + (let ((ordinary (append required optional (if rest (list rest) '())))) + (make-lambda name required optional rest + (list-transform-negative auxiliary + (lambda (aux) + (memq aux ordinary))) + auxiliary + declarations + body*))))) (define (lambda-components* *lambda receiver) (lambda-components *lambda