From: Joe Marshall Date: Fri, 12 Feb 2010 20:41:14 +0000 (-0800) Subject: Suppress integration of global operators shadowed by top-level integrations. Subtle... X-Git-Tag: 20100708-Gtk~168^2~3 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=0013d360daf48bfe8dea9c0adbf72a4e450203d5;p=mit-scheme.git Suppress integration of global operators shadowed by top-level integrations. Subtle bug here. This will workaround until I make the real fix. --- 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))))