Opened 10 years ago
Last modified 7 years ago
#2967 new defect
Pantelides fails for arrays
Reported by: | Martin Sjölund | Owned by: | somebody |
---|---|---|---|
Priority: | high | Milestone: | Future |
Component: | Backend | Version: | trunk |
Keywords: | Cc: | Willi Braun, Lennart Ochel |
Description
Pantelides fails for the following models using arrays:
package ModelicaCompliance "A semantics compliance suite for the Modelica language" extends Icons.TestPackage; package Algorithms extends Icons.TestPackage; package For extends Icons.TestPackage; model BoolRange extends Icons.TestCase; Boolean[Boolean] b; algorithm for i in false:true loop b[i] := i; end for; assert(b[false] == false, "b[false] was not set correctly."); assert(b[true] == true, "b[true] was not set correctly."); annotation(__ModelicaAssociation(TestCase(shouldPass = true, section = {"11.2.2"})), experiment(StopTime = 0.01)); end BoolRange; end For; end Algorithms; package Icons model TestCase end TestCase; package TestPackage end TestPackage; end Icons; annotation(version = "3.2"); end ModelicaCompliance; model BoolRange_total extends ModelicaCompliance.Algorithms.For.BoolRange; annotation(__ModelicaAssociation(TestCase(shouldPass = true, section = {"11.2.2"})), experiment(StopTime = 0.01)); end BoolRange_total;
package ModelicaCompliance "A semantics compliance suite for the Modelica language" extends Icons.TestPackage; package Algorithms extends Icons.TestPackage; package For extends Icons.TestPackage; model EnumRange extends Icons.TestCase; type TwoEnums = enumeration(one, two); TwoEnums[TwoEnums] te; algorithm for e in TwoEnums.one:TwoEnums.two loop te[e] := e; end for; assert(te[TwoEnums.one] == TwoEnums.one, "te[TwoEnums.one] was not set correctly."); assert(te[TwoEnums.two] == TwoEnums.two, "te[TwoEnums.two] was not set correctly."); annotation(__ModelicaAssociation(TestCase(shouldPass = true, section = {"11.2.2"})), experiment(StopTime = 0.01)); end EnumRange; end For; end Algorithms; package Icons model TestCase end TestCase; package TestPackage end TestPackage; end Icons; annotation(version = "3.2"); end ModelicaCompliance; model EnumRange_total extends ModelicaCompliance.Algorithms.For.EnumRange; annotation(__ModelicaAssociation(TestCase(shouldPass = true, section = {"11.2.2"})), experiment(StopTime = 0.01)); end EnumRange_total;
Change History (8)
comment:1 by , 10 years ago
Milestone: | 1.9.2 → 1.9.3 |
---|
comment:3 by , 9 years ago
When I run
function EnumRange type TwoEnums = enumeration(one, two); output TwoEnums te[TwoEnums]; algorithm for e in TwoEnums.one : TwoEnums.two loop te[e] := e; end for; assert(te[TwoEnums.one] == TwoEnums.one, "te[TwoEnums.one] was not set correctly."); assert(te[TwoEnums.two] == TwoEnums.two, "te[TwoEnums.two] was not set correctly."); end EnumRange;
with
loadFile("enumRange.mo"); EnumRange();
everything works as expected. How can I trigger the error? (I see it fail when I run the ModelicaCompliance Suite locally)
BoolRange works btw., it is EnumRange() RealRange and StringRange() that fail in the Compliance Suite.
comment:7 by , 8 years ago
Milestone: | 1.11.0 → 1.12.0 |
---|
Milestone moved to 1.12.0 due to 1.11.0 already being released.
comment:8 by , 7 years ago
Milestone: | 1.12.0 → Future |
---|
The milestone of this ticket has been reassigned to "Future".
If you think the issue is still valid and relevant for you, please select milestone 1.13.0 for back-end, code generation and run-time issues, or 2.0.0 for front-end issues.
If you are aware that the problem is no longer present, please select the milestone corresponding to the version of OMC you used to check that, and set the status to "worksforme".
In both cases, a short informative comment would be welcome.
Milestone changed to 1.9.3 since 1.9.2 was released.