group_by_variants(Pairs0, Solutions).
group_by_variants([], []).
-iterate_variants([V-Solution|GroupSolutions], V, Solution).
+iterate_variants([V-Solution|GroupSolutions], V, Solution) :-
+ ( GroupSolutions == [] -> !
+ ; true
+ ).
iterate_variants([_|GroupSolutions], Ws, Solution) :-
iterate_variants(GroupSolutions, Ws, Solution).
iterate_variants(GroupedSolutions, Witnesses, Solution).
iterate_variants_and_sort([V-Solution0|GroupSolutions], V, Solution) :-
- sort(Solution0, Solution).
+ sort(Solution0, Solution),
+ ( GroupSolutions == [] -> !
+ ; true
+ ).
iterate_variants_and_sort([_|GroupSolutions], Ws, Solution) :-
iterate_variants_and_sort(GroupSolutions, Ws, Solution).
).
can_be_codes_or_vars(Cs, _) :- var(Cs), !.
-can_be_codes_or_vars(Cs, PI) :-
+can_be_codes_or_vars(Cs, PI) :-
( string(Cs) ->
current_prolog_flag(double_quotes, codes)
; codes_or_vars(Cs, PI)
(HeapCellValue::Addr(Addr::PStrLocation(..)),
HeapCellValue::Addr(Addr::Con(Constant::String(..))))
| (HeapCellValue::Addr(Addr::Con(Constant::String(..))),
- HeapCellValue::Addr(Addr::PStrLocation(..)))
+ HeapCellValue::Addr(Addr::PStrLocation(..)))
if self.flags.double_quotes.is_chars() => {
continue;
}
false
}
- pub(super) fn setup_built_in_call(&mut self, ct: BuiltInClauseType) {
+ pub(super)
+ fn setup_built_in_call(&mut self, ct: BuiltInClauseType) {
self.num_of_args = ct.arity();
self.b0 = self.b;