Add block to access so we can integrate accesses in argument position.
authorJoe Marshall <jmarshall@alum.mit.edu>
Tue, 13 Jul 2010 18:40:35 +0000 (11:40 -0700)
committerJoe Marshall <jmarshall@alum.mit.edu>
Tue, 13 Jul 2010 18:40:35 +0000 (11:40 -0700)
src/sf/copy.scm
src/sf/object.scm
src/sf/subst.scm
src/sf/xform.scm

index 5f778f8b797318167958db1819e1c6cf87a588b2..20162f9b557ef24e41959c73288c724c9f6b3ba0 100644 (file)
@@ -172,6 +172,7 @@ USA.
 (define-method/copy 'ACCESS
   (lambda (block environment expression)
     (access/make (access/scode expression)
+                (access/block expression)
                 (copy/expression block
                                  environment
                                  (access/environment expression))
index 0d15dfe436edf97313283e1394249ac53b2391bb..140020c589da8607bcb5ac41f1d81740717f82dd 100644 (file)
@@ -201,7 +201,7 @@ USA.
 (define-guarantee variable "variable")
 
 ;;; Expressions
-(define-simple-type access          #f                 (environment name))
+(define-simple-type access          #f                 (block environment name))
 (define-simple-type assignment      #f                 (block variable value))
 (define-simple-type combination     combination/%make  (block operator operands))
 (define-simple-type conditional     conditional/%make  (predicate consequent alternative))
@@ -327,6 +327,7 @@ USA.
 
 (define-integrable (global-ref/make name)
   (access/make #f
+              #f
               (constant/make #f system-global-environment)
               name))
 
index 0c99e01d320707b8006878a6d7cccb88dabf192b..7216c5ee0738f99d1fdd1fa61ab1d5e5b8d1d9e7 100644 (file)
@@ -105,7 +105,9 @@ USA.
          (name (access/name expression)))
 
       (define (dont-integrate)
-       (access/make (access/scode expression) environment* name))
+       (access/make (access/scode expression)
+                    (access/block expression)
+                    environment* name))
 
       (if (not (constant/system-global-environment? environment*))
          (dont-integrate)
@@ -815,7 +817,9 @@ USA.
     (define (dont-integrate)
       (combination/make
        expression block
-       (access/make (access/scode operator) environment* name) operands))
+       (access/make (access/scode operator)
+                   (access/block operator)
+                   environment* name) operands))
 
     (if (not (constant/system-global-environment? environment*))
        (dont-integrate)
index ffcac1f84d77e24bb489b70dc06b4ae3e67b9ccf..e635507fc5acdb8d18f52186b02b93ca2954b55d 100644 (file)
@@ -241,6 +241,7 @@ USA.
   (access-components expression
     (lambda (environment* name)
       (access/make expression
+                  block
                   (transform/expression block environment environment*)
                   name))))