diff options
Diffstat (limited to 'src/interp/database.boot')
-rw-r--r-- | src/interp/database.boot | 9 |
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) |