1 | // name: InstClassBindingMod |
---|
2 | // keywords: declaration, binding, modification, bug2159 |
---|
3 | // status: correct |
---|
4 | // |
---|
5 | // Checks that the instantiation does not reorder the elements of C1 when one |
---|
6 | // element is modified with a binding that references a class. |
---|
7 | // |
---|
8 | |
---|
9 | connector C1 |
---|
10 | replaceable package P = .P; |
---|
11 | flow Real f; |
---|
12 | Real e; |
---|
13 | stream Real s; |
---|
14 | end C1; |
---|
15 | |
---|
16 | connector C2 |
---|
17 | extends C1; |
---|
18 | end C2; |
---|
19 | |
---|
20 | package P |
---|
21 | constant Real x = 2.0; |
---|
22 | end P; |
---|
23 | |
---|
24 | model M1 |
---|
25 | package P = .P; |
---|
26 | C2 c(redeclare package P = P); |
---|
27 | end M1; |
---|
28 | |
---|
29 | model InstClassBindingMod |
---|
30 | extends M1(c(e(start = P.x))); |
---|
31 | end InstClassBindingMod; |
---|
32 | |
---|
33 | // Result: |
---|
34 | // class InstClassBindingMod |
---|
35 | // Real c.f; |
---|
36 | // Real c.e(start = 2.0); |
---|
37 | // Real c.s; |
---|
38 | // equation |
---|
39 | // c.f = 0.0; |
---|
40 | // end InstClassBindingMod; |
---|
41 | // endResult |
---|