diff --git a/OMCompiler/Compiler/NFFrontEnd/NFFlatten.mo b/OMCompiler/Compiler/NFFrontEnd/NFFlatten.mo index 98b354bb3a3..9044e81cfd2 100644 --- a/OMCompiler/Compiler/NFFrontEnd/NFFlatten.mo +++ b/OMCompiler/Compiler/NFFrontEnd/NFFlatten.mo @@ -2095,6 +2095,7 @@ algorithm // Elaborate expandable connectors. (flatModel, conns) := ExpandableConnectors.elaborate(flatModel, conns); + flatModel.variables := list(v for v guard Variable.isPresent(v) in flatModel.variables); // Collect flow variables from the model, which needs to be done after // elaborating expandable connectors to get all of them. @@ -2128,7 +2129,6 @@ algorithm // add the equations to the flat model flatModel.equations := listAppend(conn_eql, flatModel.equations); - flatModel.variables := list(v for v guard Variable.isPresent(v) in flatModel.variables); // remove input and output prefixes from local IOs that are determined through connect equations if Flags.getConfigInt(Flags.EXPOSE_LOCAL_IOS) > 0 then diff --git a/OMCompiler/Compiler/NFFrontEnd/NFTyping.mo b/OMCompiler/Compiler/NFFrontEnd/NFTyping.mo index f6066c58a2f..81f8f0b0bf4 100644 --- a/OMCompiler/Compiler/NFFrontEnd/NFTyping.mo +++ b/OMCompiler/Compiler/NFFrontEnd/NFTyping.mo @@ -360,7 +360,7 @@ algorithm return; end if; - parent := InstNode.parent(component); + parent := InstNode.instanceParent(component); if InstNode.isComponent(parent) and Component.isConnector(InstNode.component(parent)) then return; end if; @@ -504,20 +504,6 @@ algorithm end if; end checkComponentStreamAttribute; -function checkConnectorType - input InstNode node; - output Boolean isConnector; -protected - InstNode dnode = InstNode.getDerivedNode(node); -algorithm - if InstNode.isEmpty(dnode) or InstNode.isInnerOuterNode(dnode) then - isConnector := false; - else - isConnector := Class.isConnectorClass(InstNode.getClass(dnode)) or - checkConnectorType(InstNode.parent(dnode)); - end if; -end checkConnectorType; - function typeIterator input InstNode iterator; input Expression range; diff --git a/testsuite/flattening/modelica/scodeinst/ExpandableConnector10.mo b/testsuite/flattening/modelica/scodeinst/ExpandableConnector10.mo new file mode 100644 index 00000000000..b064cba8592 --- /dev/null +++ b/testsuite/flattening/modelica/scodeinst/ExpandableConnector10.mo @@ -0,0 +1,29 @@ +// name: ExpandableConnector10 +// keywords: expandable connector +// status: correct +// cflags: -d=newInst +// +// + +connector FluidPort + flow Real m_flow; + Real p; + stream Real h_outflow; +end FluidPort; + +connector FluidPort_a + extends FluidPort; +end FluidPort_a; + +expandable connector Bus + FluidPort_a port_1; +end Bus; + +model ExpandableConnector10 + Bus bus; +end ExpandableConnector10; + +// Result: +// class ExpandableConnector10 +// end ExpandableConnector10; +// endResult diff --git a/testsuite/flattening/modelica/scodeinst/Makefile b/testsuite/flattening/modelica/scodeinst/Makefile index 64a08c27818..269f9fbf8e4 100644 --- a/testsuite/flattening/modelica/scodeinst/Makefile +++ b/testsuite/flattening/modelica/scodeinst/Makefile @@ -441,6 +441,7 @@ ExpandableConnector6.mo \ ExpandableConnector7.mo \ ExpandableConnector8.mo \ ExpandableConnector9.mo \ +ExpandableConnector10.mo \ ExpandableConnectorComplex1.mo \ ExpandableConnectorFlow1.mo \ ExpandableConnectorFlow2.mo \