From 0013d360daf48bfe8dea9c0adbf72a4e450203d5 Mon Sep 17 00:00:00 2001 From: Joe Marshall Date: Fri, 12 Feb 2010 12:41:14 -0800 Subject: [PATCH] Suppress integration of global operators shadowed by top-level integrations. Subtle bug here. This will workaround until I make the real fix. --- src/sf/subst.scm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/sf/subst.scm b/src/sf/subst.scm index 204e54452..64d55dc7b 100644 --- a/src/sf/subst.scm +++ b/src/sf/subst.scm @@ -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)))) -- 2.25.1