aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@axiomatics.org>2016-02-08 21:50:52 -0800
committerGabriel Dos Reis <gdr@axiomatics.org>2016-02-08 21:50:52 -0800
commitf49b0656655f43f8aab325f8b24537edacb9f382 (patch)
tree5cb4c06504aae69d33cee0536c0457d16a3ad9ac /src
parente4c7fc35015d5a0c5bceb993ecdb9d5da5ddbb61 (diff)
downloadopen-axiom-f49b0656655f43f8aab325f8b24537edacb9f382.tar.gz
Do not let domain closure escape lookupDefinitionFunction
A successful call to compiledLookup will come up with any of the form that results from stuffSlot. Handle them here. Remove confused and dead code.
Diffstat (limited to 'src')
-rw-r--r--src/interp/c-util.boot5
-rw-r--r--src/interp/nruncomp.boot6
2 files changed, 4 insertions, 7 deletions
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot
index 70675bf0..0558402a 100644
--- a/src/interp/c-util.boot
+++ b/src/interp/c-util.boot
@@ -1732,7 +1732,10 @@ lookupDefiningFunction(op,sig,dc) ==
-- such as AN ~> IAN ~> EXPR INT ~> AN that prevents
-- us from full evaluation.
args = nil and symbolMember?(ctor,$SystemInlinableConstructorNames) =>
- compiledLookup(op,sig,dc)
+ env := compiledLookup(op,sig,dc) or return nil
+ env is ['newGoGet,:.] => nil -- FIXME: Follow the link!
+ env is ['makeSpadConstant,fun,:.] => BPINAME fun
+ BPINAME first env
-- 1.2. Don't look into defaulting package
isDefaultPackageName ctor => nil
infovec := property(ctor,'infovec) or return nil
diff --git a/src/interp/nruncomp.boot b/src/interp/nruncomp.boot
index cbbabadc..dc2a7405 100644
--- a/src/interp/nruncomp.boot
+++ b/src/interp/nruncomp.boot
@@ -176,12 +176,6 @@ optDeltaEntry(op,sig,dc,kind,e) ==
MKQ x
fun := lookupDefiningFunction(op,nsig,ndc)
fun = nil => nil
- fun :=
- fun is ['makeSpadConstant,:.] and
- (fun' := getFunctionReplacement second fun) =>
- return fun'
- cons? fun => first fun
- fun
markOperation getFunctionReplacement fun
++ True if we are interested only in abstract slot, not the actual