Skip to content

Commit f7c14b9

Browse files
committed
Fixed expansion of array constructors on the form 'r[i] for i in 1:n'.
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@4761 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent cbb570c commit f7c14b9

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

Compiler/Static.mo

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1304,12 +1304,18 @@ protected function addForLoopScopeConst "function: addForLoopScopeConst
13041304
input Ident i;
13051305
input DAE.Type typ;
13061306
output Env.Env env_2;
1307-
list<Env.Frame> env_1,env_2;
1307+
list<Env.Frame> env_1,env_2; // Two env_2?
13081308
algorithm
13091309
env_1 := Env.openScope(env, false, SOME("$for loop scope$")) "encapsulated?" ;
1310-
env_2 := Env.extendFrameV(env_1,
1310+
// Defining the iterator as a parameter causes it to be constant evaluated in
1311+
// cases such as 'r[i] for i in 1:n' => 'r[1]', so it should probably be a
1312+
// variable instead.
1313+
/*env_2 := Env.extendFrameV(env_1,
13111314
DAE.TYPES_VAR(i,DAE.ATTR(false,false,SCode.RW(),SCode.PARAM(),Absyn.BIDIR(),Absyn.UNSPECIFIED()),
1312-
false,typ,DAE.VALBOUND(Values.INTEGER(1))), NONE, Env.VAR_UNTYPED(), {});
1315+
false,typ,DAE.VALBOUND(Values.INTEGER(1))), NONE, Env.VAR_UNTYPED(), {});*/
1316+
env_2 := Env.extendFrameV(env_1,
1317+
DAE.TYPES_VAR(i,DAE.ATTR(false,false,SCode.RW(),SCode.VAR(),Absyn.BIDIR(),Absyn.UNSPECIFIED()),
1318+
false,typ,DAE.UNBOUND()), NONE, Env.VAR_UNTYPED(), {});
13131319
end addForLoopScopeConst;
13141320

13151321
protected function elabCallReduction

0 commit comments

Comments
 (0)