Repository navigation
Commit a1078ad
authored
A SubTree model can declare a port that nothing is able to bind, and nothing
says so.
`validatePortName` rejects only a leading digit, so `<input_port
name="_myPort"/>` is accepted. `IsAllowedPortName` requires an alphabetic first
character, and `createNodeFromXML` uses it to classify every instance
attribute, so `_myPort="{outer}"` is diverted into `other_attributes`, the
remapping is dropped, and the SubTree reads its declared default:
Parent sets outer='FROM_PARENT'. Declared default is DEFAULT_NOT_WIRED.
myPort inside SubTree -> FROM_PARENT
_myPort inside SubTree -> DEFAULT_NOT_WIRED
`InputPort("_myPort")` already throws "Underscore is reserved", so the C++ API
and the XML declaration path disagree about the same name.
Throw when an instance attribute names a port the node declares but cannot
bind. Declared ports live in two places, so the check reads `manifest->ports`
for a registered node and `subtree_models` for a SubTree.
Rejecting the declaration in `validatePortName` would be the smaller change. It
would also break XML that loads today: a port declared and never remapped is
inert, and generated Objectives can carry such a declaration. This fires only
where a remapping is actually being lost, so an inert declaration keeps loading.
1 parent afa1bce commit a1078ad
2 files changed
Lines changed: 99 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
847 | 847 | | |
848 | 848 | | |
849 | 849 | | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
850 | 873 | | |
851 | 874 | | |
852 | 875 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1132 | 1132 | | |
1133 | 1133 | | |
1134 | 1134 | | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
0 commit comments