Do not unsyntax a `make-environment' special form unless the last
authorChris Hanson <org/chris-hanson/cph>
Tue, 14 Jun 1988 14:45:31 +0000 (14:45 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 14 Jun 1988 14:45:31 +0000 (14:45 +0000)
action in its body is `the-environment'.

v7/src/runtime/unsyn.scm

index 85e5087b6d19599d240efc293a26af06be1dfdca..b509f8127c925917dd99c94cd6dff6925817bc05 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/unsyn.scm,v 14.1 1988/06/13 11:59:14 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/unsyn.scm,v 14.2 1988/06/14 14:45:31 cph Exp $
 
 Copyright (c) 1988 Massachusetts Institute of Technology
 
@@ -171,10 +171,6 @@ MIT in each case. |#
   object
   `(THE-ENVIRONMENT))
 
-(define (unsyntax-MAKE-ENVIRONMENT names values body)
-  names values
-  `(MAKE-ENVIRONMENT ,@(except-last-pair (unsyntax-sequence body))))
-
 (define (unsyntax-DISJUNCTION-object object)
   `(OR ,@(disjunction-components object unexpand-disjunction)))
 
@@ -300,10 +296,13 @@ MIT in each case. |#
                                                  operands
                                                  body
                                                  ordinary-combination))
-                            ((eq? name lambda-tag:make-environment)
-                             (unsyntax-make-environment required
-                                                        operands
-                                                        body))
+                            ((and (eq? name lambda-tag:make-environment)
+                                  (the-environment?
+                                   (car (last-pair (sequence-actions body)))))
+                             `(MAKE-ENVIRONMENT
+                                ,@(unsyntax-objects
+                                   (except-last-pair
+                                    (sequence-actions body)))))
                             (else (ordinary-combination)))
                       (ordinary-combination)))))
              (else