Suppress integration of global operators shadowed by top-level integrations. Subtle...
authorJoe Marshall <jmarshall@alum.mit.edu>
Fri, 12 Feb 2010 20:41:14 +0000 (12:41 -0800)
committerJoe Marshall <jmarshall@alum.mit.edu>
Fri, 12 Feb 2010 20:41:14 +0000 (12:41 -0800)
src/sf/subst.scm

index 204e54452fc083f6445a83512866ff9257590b95..64d55dc7bfa1d89cef5d0e74e449bbf4559c4848 100644 (file)
@@ -643,15 +643,10 @@ USA.
                    (else (dont-integrate))))
 
             ((INTEGRATE INTEGRATE-OPERATOR)
-             ;; This branch is never taken because all the global
-             ;; operators are defined via expansions.  But if that
-             ;; ever changes...
-             (let ((new-expression (integrate/name expression operator info environment)))
-               (if new-expression
-                   (integrate/combination
-                    expression operations environment
-                    block new-expression operands)
-                   (dont-integrate))))
+             ;; This can happen when a top-level variable shadows an expander.
+             ;; Don't integrate here or the wrong thing will happen.
+             ;; This needs to be fixed.
+             (dont-integrate))
 
             (else
              (error "unknown operation" operation))))