aboutsummaryrefslogtreecommitdiff
path: root/src/interp/database.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/database.boot')
-rw-r--r--src/interp/database.boot9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/interp/database.boot b/src/interp/database.boot
index 8e764e50..b68c659b 100644
--- a/src/interp/database.boot
+++ b/src/interp/database.boot
@@ -455,11 +455,10 @@ fixUpPredicate(predClause, domainPreds, partial, sig) ==
-- merge the predicates in predClause and domainPreds into a
-- single predicate
[predicate, fn, :skip] := predClause
- if first predicate = "AND" then
- predicates := append(domainPreds,rest predicate)
- else if predicate ~= MKQ "T"
- then predicates:= [predicate, :domainPreds]
- else predicates := domainPreds or [predicate]
+ predicates :=
+ predicate is true => domainPreds or [predicate]
+ predicate is ["AND",:.] => [:domainPreds,:predicate.args]
+ [predicate,:domainPreds]
if #predicates > 1 then
pred := ["AND",:predicates]
[pred,:dependList]:=orderPredicateItems(pred,sig,skip)