Changeset 8a20ce0 in OpenModelica for Compiler/NFFrontEnd/NFTyping.mo
- Timestamp:
- 2019-01-21T16:29:30+01:00 (4 years ago)
- Branches:
- Added-citation-metadata, maintenance/v1.14, maintenance/v1.15, maintenance/v1.16, maintenance/v1.17, maintenance/v1.18, maintenance/v1.19, master, omlib-staging
- Children:
- 5e72f06e
- Parents:
- 25cfbd50
- git-author:
- Per Östlund <per.ostlund@…> (01/21/19 16:29:30)
- git-committer:
- hudson <openmodelica@…> (01/21/19 16:29:30)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Compiler/NFFrontEnd/NFTyping.mo
r0861aa33 r8a20ce0 762 762 MatchKind matchKind; 763 763 String name; 764 Variability comp_var, comp_eff_var, bind_var; 764 Variability comp_var, comp_eff_var, bind_var, bind_eff_var; 765 Component.Attributes attrs; 765 766 algorithm 766 767 if InstNode.isEmpty(component) then … … 771 772 772 773 () := match c 773 case Component.TYPED_COMPONENT(binding = Binding.UNTYPED_BINDING() )774 case Component.TYPED_COMPONENT(binding = Binding.UNTYPED_BINDING(), attributes = attrs) 774 775 algorithm 775 776 name := InstNode.name(component); … … 784 785 comp_var := Component.variability(c); 785 786 comp_eff_var := Prefixes.effectiveVariability(comp_var); 786 bind_var := Prefixes.effectiveVariability(Binding.variability(binding)); 787 788 if bind_var > comp_eff_var and ExpOrigin.flagNotSet(origin, ExpOrigin.FUNCTION) then 787 bind_var := Binding.variability(binding); 788 bind_eff_var := Prefixes.effectiveVariability(bind_var); 789 790 if bind_eff_var > comp_eff_var and ExpOrigin.flagNotSet(origin, ExpOrigin.FUNCTION) then 789 791 Error.addSourceMessage(Error.HIGHER_VARIABILITY_BINDING, { 790 792 name, Prefixes.variabilityString(comp_eff_var), 791 "'" + Binding.toString(c.binding) + "'", Prefixes.variabilityString(bind_ var)},793 "'" + Binding.toString(c.binding) + "'", Prefixes.variabilityString(bind_eff_var)}, 792 794 Binding.getInfo(binding)); 793 795 fail(); 796 end if; 797 798 // Mark parameters that have a structural cref as binding as also 799 // structural. This is perhaps not optimal, but is required right now 800 // to avoid structural singularity and other issues. 801 if bind_var == Variability.STRUCTURAL_PARAMETER and 802 comp_var == Variability.PARAMETER and 803 Binding.isCrefExp(binding) then 804 attrs.variability := bind_var; 805 c.attributes := attrs; 794 806 end if; 795 807 else
Note: See TracChangeset
for help on using the changeset viewer.