Skip to content
This repository was archived by the owner on May 18, 2019. It is now read-only.

Commit 8e9ee91

Browse files
perostOpenModelica-Hudson
authored andcommitted
[NF] Better handling of stateSelect.
- Evaluate stateSelect attributes so they can be converted to DAE. - Fix bindings of StateSelect members in Builtin, they'd been mistakenly set as the components' conditional expressions. Belonging to [master]: - #2042 - OpenModelica/OpenModelica-testsuite#790
1 parent 0790acf commit 8e9ee91

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

Compiler/NFFrontEnd/NFBuiltin.mo

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,8 @@ constant InstNode STATESELECT_NEVER =
233233
Pointer.createImmutable(Component.TYPED_COMPONENT(
234234
InstNode.EMPTY_NODE(),
235235
STATESELECT_TYPE,
236-
Binding.UNBOUND(),
237236
STATESELECT_NEVER_BINDING,
237+
Binding.UNBOUND(),
238238
NFComponent.CONSTANT_ATTR,
239239
Absyn.dummyInfo)),
240240
0,
@@ -249,8 +249,8 @@ constant InstNode STATESELECT_AVOID =
249249
Pointer.createImmutable(Component.TYPED_COMPONENT(
250250
InstNode.EMPTY_NODE(),
251251
STATESELECT_TYPE,
252-
Binding.UNBOUND(),
253252
STATESELECT_AVOID_BINDING,
253+
Binding.UNBOUND(),
254254
NFComponent.CONSTANT_ATTR,
255255
Absyn.dummyInfo)),
256256
0,
@@ -265,8 +265,8 @@ constant InstNode STATESELECT_DEFAULT =
265265
Pointer.createImmutable(Component.TYPED_COMPONENT(
266266
InstNode.EMPTY_NODE(),
267267
STATESELECT_TYPE,
268-
Binding.UNBOUND(),
269268
STATESELECT_DEFAULT_BINDING,
269+
Binding.UNBOUND(),
270270
NFComponent.CONSTANT_ATTR,
271271
Absyn.dummyInfo)),
272272
0,
@@ -281,8 +281,8 @@ constant InstNode STATESELECT_PREFER =
281281
Pointer.createImmutable(Component.TYPED_COMPONENT(
282282
InstNode.EMPTY_NODE(),
283283
STATESELECT_TYPE,
284-
Binding.UNBOUND(),
285284
STATESELECT_PREFER_BINDING,
285+
Binding.UNBOUND(),
286286
NFComponent.CONSTANT_ATTR,
287287
Absyn.dummyInfo)),
288288
0,
@@ -297,8 +297,8 @@ constant InstNode STATESELECT_ALWAYS =
297297
Pointer.createImmutable(Component.TYPED_COMPONENT(
298298
InstNode.EMPTY_NODE(),
299299
STATESELECT_TYPE,
300-
Binding.UNBOUND(),
301300
STATESELECT_ALWAYS_BINDING,
301+
Binding.UNBOUND(),
302302
NFComponent.CONSTANT_ATTR,
303303
Absyn.dummyInfo)),
304304
0,

Compiler/NFFrontEnd/NFTyping.mo

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,9 @@ algorithm
530530
Boolean dirty;
531531
String name;
532532

533+
// A component that's already been typed.
534+
case Component.TYPED_COMPONENT(binding = Binding.TYPED_BINDING()) then ();
535+
533536
case Component.TYPED_COMPONENT()
534537
algorithm
535538
name := InstNode.name(component);
@@ -704,6 +707,7 @@ algorithm
704707

705708
binding := match name
706709
case "fixed" then evalBinding(binding);
710+
case "stateSelect" then evalBinding(binding);
707711
else binding;
708712
end match;
709713

0 commit comments

Comments
 (0)