Skip to content

Commit 5c8a28d

Browse files
committed
Fix List.combinationMap1 too.
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@25099 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 9478fb9 commit 5c8a28d

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

Compiler/Util/List.mo

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6188,10 +6188,10 @@ public function combinationMap1<TI, TO, ArgT1>
61886188
output TO outElement;
61896189
end MapFunc;
61906190
protected
6191-
list<list<TI>> elems;
6191+
list<TO> elems;
61926192
algorithm
6193-
elems := listReverse(inElements);
6194-
outElements := combinationMap1_tail(elems, inMapFunc, inArg, {}, {});
6193+
elems := combinationMap1_tail(inElements, inMapFunc, inArg, {}, {});
6194+
outElements := listReverse(elems);
61956195
end combinationMap1;
61966196

61976197
protected function combinationMap1_tail<TI, TO, ArgT1>
@@ -6210,14 +6210,20 @@ protected function combinationMap1_tail<TI, TO, ArgT1>
62106210
algorithm
62116211
outElements := match(inElements)
62126212
local
6213-
TO elem;
62146213
list<TI> head;
62156214
list<list<TI>> rest;
6215+
list<TO> acc;
62166216

62176217
case head :: rest
6218-
then combinationMap1_tail2(head, rest, inMapFunc, inArg, inCombination, inAccumElems);
6218+
algorithm
6219+
acc := inAccumElems;
6220+
for e in head loop
6221+
acc := combinationMap1_tail(rest, inMapFunc, inArg, e :: inCombination, acc);
6222+
end for;
6223+
then
6224+
acc;
62196225

6220-
else inMapFunc(inCombination, inArg) :: inAccumElems;
6226+
else inMapFunc(listReverse(inCombination), inArg) :: inAccumElems;
62216227

62226228
end match;
62236229
end combinationMap1_tail;

0 commit comments

Comments
 (0)