aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/category.boot20
-rw-r--r--src/interp/define.boot7
-rw-r--r--src/interp/functor.boot3
-rw-r--r--src/interp/info.boot2
-rw-r--r--src/interp/sys-globals.boot3
5 files changed, 3 insertions, 32 deletions
diff --git a/src/interp/category.boot b/src/interp/category.boot
index dbdf9919..77b45dfe 100644
--- a/src/interp/category.boot
+++ b/src/interp/category.boot
@@ -300,28 +300,10 @@ SigListOpSubsume([[name1,sig1,:.],:.],list) ==
lsig1 := #sig1
ans:=[]
for (n:=[[name2,sig2,:.],:.]) in list repeat
- name1=name2 and lsig1 = #sig2 and SourceLevelSubsume(sig1,sig2) =>
+ name1=name2 and lsig1 = #sig2 and sig1 = sig2 =>
ans:=[n,:ans]
return ans
-SigOpsubsume([[name1,sig1,:flag1],pred1,:.],[[name2,sig2,:flag2],pred2,:.]) ==
- --flag1 = flag2 and :this really should be checked
- name1=name2 and LENGTH sig1=LENGTH sig2 and SourceLevelSubsume(sig1,sig2)
-
-SourceLevelSubsume([out1,:in1],[out2,:in2]) ==
- -- Checks for source-level subsumption in the sense of SYSTEM SCRIPT
- -- true if the first signature subsumes the second
- SourceLevelSubset(out1,out2) and
- (and/[SourceLevelSubset(inarg2,inarg1) for inarg1 in in1 for inarg2 in in2])
-
-SourceLevelSubset(a,b) ==
- --true if a is a source-level subset of b
- a=b => true
- $noSubsumption=true => false
- b is ["Union",:blist] and member(a,blist) => true
- BOUNDP '$noSubsets and $noSubsets => false
- not null isSubDomain(a,b)
-
MachineLevelSubsume([name1,[out1,:in1],:flag1],[name2,[out2,:in2],:flag2]) ==
-- Checks for machine-level subsumption in the sense of SYSTEM SCRIPT
-- true if the first signature subsumes the second
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 8a188026..f0d9cb16 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -1127,13 +1127,6 @@ getSignature(op,argModeList,$e) ==
else for [[dc,:sig],:.] in mmList repeat printSignature(" ",op,sig)
printSignature("NEED ",op,["?",:argModeList])
nil
- for u in sigl repeat
- for v in sigl | not (u=v) repeat
- if SourceLevelSubsume(u,v) then sigl:= delete(v,sigl)
- --before we complain about duplicate signatures, we should
- --check that we do not have for example, a partial - as
- --well as a total one. SourceLevelSubsume (from CATEGORY BOOT)
- --should do this
1=#sigl => first sigl
stackSemanticError(["duplicate signatures for ",op,": ",argModeList],nil)
diff --git a/src/interp/functor.boot b/src/interp/functor.boot
index b792ff7e..0a1a700c 100644
--- a/src/interp/functor.boot
+++ b/src/interp/functor.boot
@@ -734,8 +734,7 @@ SigSlotsMatch(sig,pattern,implem) ==
sig'=pat' => true
--If we don't have this next test, then we'll recurse in SetFunctionSlots
implem is ['Subsumed,:.] => nil
- SourceLevelSubsume(sig',pat') => true
- nil
+ sig' = pat'
CheckVector(vec,name,catvecListMaker) ==
code:= nil
diff --git a/src/interp/info.boot b/src/interp/info.boot
index 1e9cb6ef..2e168e03 100644
--- a/src/interp/info.boot
+++ b/src/interp/info.boot
@@ -200,7 +200,7 @@ knownInfo pred ==
v:= get(op,"modemap",$e)
for w in v repeat
ww:= CDAR w --the actual signature part
- #ww = #sig and SourceLevelSubsume(ww,sig) =>
+ ww = sig =>
CAADR w = true => return true
false
--error '"knownInfo"
diff --git a/src/interp/sys-globals.boot b/src/interp/sys-globals.boot
index c90028e7..d73e5234 100644
--- a/src/interp/sys-globals.boot
+++ b/src/interp/sys-globals.boot
@@ -374,9 +374,6 @@ $constructorLineNumber := 0
++
$maxSignatureLineNumber := 0
-++
-$noSubsumption :=true
-
SPADERRORSTREAM := _*ERROR_-OUTPUT_*
++