@@ -796,6 +796,7 @@ algorithm
796796 list< DAE . Exp > expl;
797797 DAE . Type tp;
798798 DAE . ComponentRef cr, cr1;
799+ BackendDAE . Equation eqn;
799800 BackendDAE . WhenEquation we, we_1;
800801 DAE . ElementSource source;
801802 Integer size;
@@ -848,10 +849,9 @@ algorithm
848849 (eqns, extArg) = List . map1Fold(eqns, traverseExpsOfEquation, inFunc, extArg);
849850 then (BackendDAE . IF_EQUATION (expl, eqnslst, eqns, source, attr), extArg);
850851
851- case BackendDAE . FOR_EQUATION (iter= iter,start= start,stop= stop,left= e1, right= e2, source= source, attr= attr) equation
852- (e_1, extArg) = inFunc(e1, inTypeA);
853- (e_2, extArg) = inFunc(e2, extArg);
854- then (if referenceEq(e1,e_1) and referenceEq(e2,e_2) then inEquation else BackendDAE . FOR_EQUATION (iter,start,stop,e_1,e_2,source,attr), extArg);
852+ case BackendDAE . FOR_EQUATION (iter = iter, start = start, stop = stop, source = source, attr = attr) equation
853+ (eqn, extArg) = traverseExpsOfEquation(inEquation. body, inFunc, inTypeA);
854+ then (BackendDAE . FOR_EQUATION (iter, start, stop, eqn, source, attr), extArg);
855855 end match;
856856end traverseExpsOfEquation;
857857
@@ -1694,7 +1694,7 @@ algorithm
16941694 then size;
16951695
16961696 case BackendDAE . FOR_EQUATION (start = DAE . ICONST (start), stop = DAE . ICONST (stop)) equation
1697- size = stop - start + 1 ;
1697+ size = ( stop - start + 1 ) * equationSize(eq . body) ;
16981698 then size;
16991699
17001700 else equation
@@ -1970,7 +1970,6 @@ algorithm
19701970 list< Integer > dimSize;
19711971 DAE . Exp lhs;
19721972 DAE . Exp rhs;
1973- DAE . Exp iter, start, stop;
19741973 DAE . ComponentRef componentRef;
19751974 Integer size;
19761975 DAE . Algorithm alg;
@@ -1986,8 +1985,8 @@ algorithm
19861985 case (BackendDAE . ARRAY_EQUATION (dimSize= dimSize, left= lhs, right= rhs, source= source), _)
19871986 then BackendDAE . ARRAY_EQUATION (dimSize, lhs, rhs, source, inAttr);
19881987
1989- case (BackendDAE . FOR_EQUATION (iter = iter, start = start, stop = stop, left = lhs, right = rhs, source = source ), _)
1990- then BackendDAE . FOR_EQUATION (iter, start, stop, lhs, rhs, source, inAttr);
1988+ case (BackendDAE . FOR_EQUATION (), _)
1989+ then BackendDAE . FOR_EQUATION (inEqn . iter, inEqn . start, inEqn . stop, inEqn . body, inEqn . source, inAttr);
19911990
19921991 case (BackendDAE . SOLVED_EQUATION (componentRef= componentRef, exp= rhs, source= source), _)
19931992 then BackendDAE . SOLVED_EQUATION (componentRef, rhs, source, inAttr);
0 commit comments