Skip to content

Commit 7f260f8

Browse files
committed
Add cycle detection to binding times
1 parent 4f9a3a7 commit 7f260f8

File tree

5 files changed

+321
-3
lines changed

5 files changed

+321
-3
lines changed

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.typetags.bindingtime/models/org.iets3.core.expr.typetags.bindingtime.behavior.mps

Lines changed: 248 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
<import index="n0mj" ref="r:8218afdf-a485-4479-86a0-78900b96a4dd(org.iets3.core.expr.typetags.bindingtime.structure)" />
1717
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" />
1818
<import index="guwi" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.io(JDK/)" />
19-
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
19+
<import index="hwgx" ref="r:fd2980c8-676c-4b19-b524-18c70e02f8b7(com.mbeddr.core.base.behavior)" />
20+
<import index="vs0r" ref="r:f7764ca4-8c75-4049-922b-08516400a727(com.mbeddr.core.base.structure)" />
21+
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
2022
</imports>
2123
<registry>
2224
<language id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior">
@@ -29,6 +31,7 @@
2931
<concept id="1225194472830" name="jetbrains.mps.lang.behavior.structure.ConceptMethodDeclaration" flags="ng" index="13i0hz">
3032
<property id="5864038008284099149" name="isStatic" index="2Ki8OM" />
3133
<property id="1225194472832" name="isVirtual" index="13i0it" />
34+
<property id="1225194472834" name="isAbstract" index="13i0iv" />
3235
<reference id="1225194472831" name="overriddenMethod" index="13i0hy" />
3336
</concept>
3437
<concept id="1225194691553" name="jetbrains.mps.lang.behavior.structure.ThisNodeExpression" flags="nn" index="13iPFW" />
@@ -66,6 +69,9 @@
6669
<child id="1068580123135" name="body" index="3clF47" />
6770
</concept>
6871
<concept id="1068580123152" name="jetbrains.mps.baseLanguage.structure.EqualsExpression" flags="nn" index="3clFbC" />
72+
<concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
73+
<child id="1068580123156" name="expression" index="3clFbG" />
74+
</concept>
6975
<concept id="1068580123159" name="jetbrains.mps.baseLanguage.structure.IfStatement" flags="nn" index="3clFbJ">
7076
<child id="1068580123160" name="condition" index="3clFbw" />
7177
<child id="1068580123161" name="ifTrue" index="3clFbx" />
@@ -94,6 +100,7 @@
94100
<child id="1081773367579" name="rightExpression" index="3uHU7w" />
95101
<child id="1081773367580" name="leftExpression" index="3uHU7B" />
96102
</concept>
103+
<concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
97104
<concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
98105
<child id="1178549979242" name="visibility" index="1B3o_S" />
99106
</concept>
@@ -148,6 +155,23 @@
148155
<child id="2535923850359271783" name="elements" index="1PaTwD" />
149156
</concept>
150157
</language>
158+
<language id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
159+
<concept id="540871147943773365" name="jetbrains.mps.baseLanguage.collections.structure.SingleArgumentSequenceOperation" flags="nn" index="25WWJ4">
160+
<child id="540871147943773366" name="argument" index="25WWJ7" />
161+
</concept>
162+
<concept id="1151688443754" name="jetbrains.mps.baseLanguage.collections.structure.ListType" flags="in" index="_YKpA">
163+
<child id="1151688676805" name="elementType" index="_ZDj9" />
164+
</concept>
165+
<concept id="1151689724996" name="jetbrains.mps.baseLanguage.collections.structure.SequenceType" flags="in" index="A3Dl8">
166+
<child id="1151689745422" name="elementType" index="A3Ik2" />
167+
</concept>
168+
<concept id="3358009230509553641" name="jetbrains.mps.baseLanguage.collections.structure.LinkedListType" flags="in" index="2BANLN" />
169+
<concept id="1237721394592" name="jetbrains.mps.baseLanguage.collections.structure.AbstractContainerCreator" flags="nn" index="HWqM0">
170+
<child id="1237721435807" name="elementType" index="HW$YZ" />
171+
</concept>
172+
<concept id="1227008614712" name="jetbrains.mps.baseLanguage.collections.structure.LinkedListCreator" flags="nn" index="2Jqq0_" />
173+
<concept id="1160612413312" name="jetbrains.mps.baseLanguage.collections.structure.AddElementOperation" flags="nn" index="TSZUe" />
174+
</language>
151175
</registry>
152176
<node concept="13h7C7" id="35Mye9Ko_AD">
153177
<ref role="13h7C2" to="n0mj:1SyV1pw9yQo" resolve="BTtag" />
@@ -904,6 +928,16 @@
904928
</node>
905929
</node>
906930
</node>
931+
<node concept="13i0hz" id="1CvMCa_pcre" role="13h7CS">
932+
<property role="TrG5h" value="getDependency" />
933+
<property role="13i0it" value="true" />
934+
<property role="13i0iv" value="true" />
935+
<node concept="3Tm1VV" id="1CvMCa_pcrf" role="1B3o_S" />
936+
<node concept="3Tqbb2" id="1CvMCa_pcr$" role="3clF45">
937+
<ref role="ehGHo" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
938+
</node>
939+
<node concept="3clFbS" id="1CvMCa_pcrh" role="3clF47" />
940+
</node>
907941
</node>
908942
<node concept="13h7C7" id="5XGFpL9UzWz">
909943
<ref role="13h7C2" to="n0mj:1YvM8qoUB$9" resolve="BTDeclarationRef" />
@@ -931,6 +965,24 @@
931965
</node>
932966
<node concept="17QB3L" id="5XGFpL9UzXm" role="3clF45" />
933967
</node>
968+
<node concept="13i0hz" id="1CvMCa_pcDG" role="13h7CS">
969+
<property role="TrG5h" value="getDependency" />
970+
<ref role="13i0hy" node="1CvMCa_pcre" resolve="getDependency" />
971+
<node concept="3Tm1VV" id="1CvMCa_pcDH" role="1B3o_S" />
972+
<node concept="3clFbS" id="1CvMCa_pcDK" role="3clF47">
973+
<node concept="3cpWs6" id="1CvMCa_pcJQ" role="3cqZAp">
974+
<node concept="2OqwBi" id="1CvMCa_pcUL" role="3cqZAk">
975+
<node concept="13iPFW" id="1CvMCa_pcK7" role="2Oq$k0" />
976+
<node concept="3TrEf2" id="1CvMCa_pd6D" role="2OqNvi">
977+
<ref role="3Tt5mk" to="n0mj:1YvM8qoUB$a" resolve="stage" />
978+
</node>
979+
</node>
980+
</node>
981+
</node>
982+
<node concept="3Tqbb2" id="1CvMCa_pcDL" role="3clF45">
983+
<ref role="ehGHo" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
984+
</node>
985+
</node>
934986
</node>
935987
<node concept="13h7C7" id="5XGFpL9U_7F">
936988
<ref role="13h7C2" to="n0mj:1YvM8qoUB$f" resolve="BTGroupStageRef" />
@@ -958,6 +1010,201 @@
9581010
</node>
9591011
<node concept="17QB3L" id="5XGFpL9U_7X" role="3clF45" />
9601012
</node>
1013+
<node concept="13i0hz" id="1CvMCa_pdo2" role="13h7CS">
1014+
<property role="TrG5h" value="getDependency" />
1015+
<ref role="13i0hy" node="1CvMCa_pcre" resolve="getDependency" />
1016+
<node concept="3Tm1VV" id="1CvMCa_pdo3" role="1B3o_S" />
1017+
<node concept="3clFbS" id="1CvMCa_pdo6" role="3clF47">
1018+
<node concept="3cpWs6" id="1CvMCa_pdoR" role="3cqZAp">
1019+
<node concept="2OqwBi" id="1CvMCa_pdzQ" role="3cqZAk">
1020+
<node concept="13iPFW" id="1CvMCa_pdpc" role="2Oq$k0" />
1021+
<node concept="3TrEf2" id="1CvMCa_pdIz" role="2OqNvi">
1022+
<ref role="3Tt5mk" to="n0mj:1YvM8qoUB$g" resolve="group" />
1023+
</node>
1024+
</node>
1025+
</node>
1026+
</node>
1027+
<node concept="3Tqbb2" id="1CvMCa_pdo7" role="3clF45">
1028+
<ref role="ehGHo" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
1029+
</node>
1030+
</node>
1031+
</node>
1032+
<node concept="13h7C7" id="1CvMCa_oAA3">
1033+
<ref role="13h7C2" to="n0mj:13eh33ruPNR" resolve="BTGroup" />
1034+
<node concept="13hLZK" id="1CvMCa_oAA4" role="13h7CW">
1035+
<node concept="3clFbS" id="1CvMCa_oAA5" role="2VODD2" />
1036+
</node>
1037+
<node concept="13i0hz" id="1CvMCa_oAAe" role="13h7CS">
1038+
<property role="TrG5h" value="getDependenciesRelevantForCycleDetection" />
1039+
<ref role="13i0hy" to="hwgx:59HbAIOYveX" resolve="getDependenciesRelevantForCycleDetection" />
1040+
<node concept="3Tm1VV" id="1CvMCa_oAAf" role="1B3o_S" />
1041+
<node concept="3clFbS" id="1CvMCa_oAAj" role="3clF47">
1042+
<node concept="3cpWs8" id="1CvMCa_oGKN" role="3cqZAp">
1043+
<node concept="3cpWsn" id="1CvMCa_oGKO" role="3cpWs9">
1044+
<property role="TrG5h" value="list" />
1045+
<node concept="2BANLN" id="1CvMCa_oGBu" role="1tU5fm">
1046+
<node concept="3Tqbb2" id="1CvMCa_oGBx" role="_ZDj9">
1047+
<ref role="ehGHo" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
1048+
</node>
1049+
</node>
1050+
<node concept="2ShNRf" id="1CvMCa_oGKP" role="33vP2m">
1051+
<node concept="2Jqq0_" id="1CvMCa_oGKQ" role="2ShVmc">
1052+
<node concept="3Tqbb2" id="1CvMCa_oGKR" role="HW$YZ">
1053+
<ref role="ehGHo" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
1054+
</node>
1055+
</node>
1056+
</node>
1057+
</node>
1058+
</node>
1059+
<node concept="3clFbJ" id="1CvMCa_oB$q" role="3cqZAp">
1060+
<node concept="3clFbS" id="1CvMCa_oB$s" role="3clFbx">
1061+
<node concept="3clFbF" id="1CvMCa_oKkb" role="3cqZAp">
1062+
<node concept="2OqwBi" id="1CvMCa_oMe6" role="3clFbG">
1063+
<node concept="37vLTw" id="1CvMCa_oKk9" role="2Oq$k0">
1064+
<ref role="3cqZAo" node="1CvMCa_oGKO" resolve="list" />
1065+
</node>
1066+
<node concept="TSZUe" id="1CvMCa_oQZP" role="2OqNvi">
1067+
<node concept="2OqwBi" id="1CvMCa_oT2C" role="25WWJ7">
1068+
<node concept="2OqwBi" id="1CvMCa_oRA9" role="2Oq$k0">
1069+
<node concept="13iPFW" id="1CvMCa_oReW" role="2Oq$k0" />
1070+
<node concept="3TrEf2" id="1CvMCa_oSe8" role="2OqNvi">
1071+
<ref role="3Tt5mk" to="n0mj:5XGFpL9THzl" resolve="previous" />
1072+
</node>
1073+
</node>
1074+
<node concept="3TrEf2" id="1CvMCa_oTsp" role="2OqNvi">
1075+
<ref role="3Tt5mk" to="n0mj:1YvM8qoU5be" resolve="group" />
1076+
</node>
1077+
</node>
1078+
</node>
1079+
</node>
1080+
</node>
1081+
</node>
1082+
<node concept="3fqX7Q" id="1CvMCa_poJi" role="3clFbw">
1083+
<node concept="2OqwBi" id="1CvMCa_poJk" role="3fr31v">
1084+
<node concept="13iPFW" id="1CvMCa_poJl" role="2Oq$k0" />
1085+
<node concept="3TrcHB" id="1CvMCa_poJm" role="2OqNvi">
1086+
<ref role="3TsBF5" to="n0mj:5XGFpL9THzj" resolve="initial" />
1087+
</node>
1088+
</node>
1089+
</node>
1090+
</node>
1091+
<node concept="3cpWs6" id="1CvMCa_oU4b" role="3cqZAp">
1092+
<node concept="37vLTw" id="1CvMCa_oUpg" role="3cqZAk">
1093+
<ref role="3cqZAo" node="1CvMCa_oGKO" resolve="list" />
1094+
</node>
1095+
</node>
1096+
</node>
1097+
<node concept="A3Dl8" id="1CvMCa_oAAk" role="3clF45">
1098+
<node concept="3Tqbb2" id="1CvMCa_oAAl" role="A3Ik2">
1099+
<ref role="ehGHo" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
1100+
</node>
1101+
</node>
1102+
</node>
1103+
</node>
1104+
<node concept="13h7C7" id="1CvMCa_p3ZU">
1105+
<ref role="13h7C2" to="n0mj:2tub4U54J$L" resolve="BTDeclaration" />
1106+
<node concept="13hLZK" id="1CvMCa_p3ZV" role="13h7CW">
1107+
<node concept="3clFbS" id="1CvMCa_p3ZW" role="2VODD2" />
1108+
</node>
1109+
<node concept="13i0hz" id="1CvMCa_p405" role="13h7CS">
1110+
<property role="TrG5h" value="getDependenciesRelevantForCycleDetection" />
1111+
<ref role="13i0hy" to="hwgx:59HbAIOYveX" resolve="getDependenciesRelevantForCycleDetection" />
1112+
<node concept="3Tm1VV" id="1CvMCa_p406" role="1B3o_S" />
1113+
<node concept="3clFbS" id="1CvMCa_p40a" role="3clF47">
1114+
<node concept="3cpWs8" id="1CvMCa_p40s" role="3cqZAp">
1115+
<node concept="3cpWsn" id="1CvMCa_p40v" role="3cpWs9">
1116+
<property role="TrG5h" value="deps" />
1117+
<node concept="2BANLN" id="1CvMCa_p40q" role="1tU5fm">
1118+
<node concept="3Tqbb2" id="1CvMCa_p41h" role="_ZDj9">
1119+
<ref role="ehGHo" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
1120+
</node>
1121+
</node>
1122+
<node concept="2ShNRf" id="1CvMCa_p42j" role="33vP2m">
1123+
<node concept="2Jqq0_" id="1CvMCa_p497" role="2ShVmc">
1124+
<node concept="3Tqbb2" id="1CvMCa_p4mI" role="HW$YZ">
1125+
<ref role="ehGHo" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
1126+
</node>
1127+
</node>
1128+
</node>
1129+
</node>
1130+
</node>
1131+
<node concept="3clFbJ" id="1CvMCa_p4C8" role="3cqZAp">
1132+
<node concept="3clFbS" id="1CvMCa_p4Ca" role="3clFbx">
1133+
<node concept="3clFbF" id="1CvMCa_p5KL" role="3cqZAp">
1134+
<node concept="2OqwBi" id="1CvMCa_p7z5" role="3clFbG">
1135+
<node concept="37vLTw" id="1CvMCa_p5KJ" role="2Oq$k0">
1136+
<ref role="3cqZAo" node="1CvMCa_p40v" resolve="deps" />
1137+
</node>
1138+
<node concept="TSZUe" id="1CvMCa_p9Bm" role="2OqNvi">
1139+
<node concept="2OqwBi" id="1CvMCa_pc68" role="25WWJ7">
1140+
<node concept="2OqwBi" id="1CvMCa_pa5V" role="2Oq$k0">
1141+
<node concept="13iPFW" id="1CvMCa_p9Jf" role="2Oq$k0" />
1142+
<node concept="3TrEf2" id="1CvMCa_paEy" role="2OqNvi">
1143+
<ref role="3Tt5mk" to="n0mj:1YvM8qoUBrY" resolve="previous" />
1144+
</node>
1145+
</node>
1146+
<node concept="2qgKlT" id="1CvMCa_pe6V" role="2OqNvi">
1147+
<ref role="37wK5l" node="1CvMCa_pcre" resolve="getDependency" />
1148+
</node>
1149+
</node>
1150+
</node>
1151+
</node>
1152+
</node>
1153+
</node>
1154+
<node concept="3fqX7Q" id="1CvMCa_p5GQ" role="3clFbw">
1155+
<node concept="2OqwBi" id="1CvMCa_p5GS" role="3fr31v">
1156+
<node concept="13iPFW" id="1CvMCa_p5GT" role="2Oq$k0" />
1157+
<node concept="3TrcHB" id="1CvMCa_p5GU" role="2OqNvi">
1158+
<ref role="3TsBF5" to="n0mj:2tub4U558ns" resolve="initial" />
1159+
</node>
1160+
</node>
1161+
</node>
1162+
</node>
1163+
<node concept="3clFbJ" id="1CvMCa_pgpa" role="3cqZAp">
1164+
<node concept="3clFbS" id="1CvMCa_pgpc" role="3clFbx">
1165+
<node concept="3clFbF" id="1CvMCa_pi9n" role="3cqZAp">
1166+
<node concept="2OqwBi" id="1CvMCa_pk05" role="3clFbG">
1167+
<node concept="37vLTw" id="1CvMCa_pi9l" role="2Oq$k0">
1168+
<ref role="3cqZAo" node="1CvMCa_p40v" resolve="deps" />
1169+
</node>
1170+
<node concept="TSZUe" id="1CvMCa_pmbS" role="2OqNvi">
1171+
<node concept="2OqwBi" id="1CvMCa_pnBn" role="25WWJ7">
1172+
<node concept="2OqwBi" id="1CvMCa_pmJw" role="2Oq$k0">
1173+
<node concept="13iPFW" id="1CvMCa_pml7" role="2Oq$k0" />
1174+
<node concept="3TrEf2" id="1CvMCa_pni$" role="2OqNvi">
1175+
<ref role="3Tt5mk" to="n0mj:1YvM8qoU5bg" resolve="group" />
1176+
</node>
1177+
</node>
1178+
<node concept="3TrEf2" id="1CvMCa_po6e" role="2OqNvi">
1179+
<ref role="3Tt5mk" to="n0mj:1YvM8qoU5be" resolve="group" />
1180+
</node>
1181+
</node>
1182+
</node>
1183+
</node>
1184+
</node>
1185+
</node>
1186+
<node concept="3y3z36" id="1CvMCa_phL5" role="3clFbw">
1187+
<node concept="10Nm6u" id="1CvMCa_pi39" role="3uHU7w" />
1188+
<node concept="2OqwBi" id="1CvMCa_pgQT" role="3uHU7B">
1189+
<node concept="13iPFW" id="1CvMCa_pgvC" role="2Oq$k0" />
1190+
<node concept="3TrEf2" id="1CvMCa_phuB" role="2OqNvi">
1191+
<ref role="3Tt5mk" to="n0mj:1YvM8qoU5bg" resolve="group" />
1192+
</node>
1193+
</node>
1194+
</node>
1195+
</node>
1196+
<node concept="3cpWs6" id="1CvMCa_pem2" role="3cqZAp">
1197+
<node concept="37vLTw" id="1CvMCa_pe_v" role="3cqZAk">
1198+
<ref role="3cqZAo" node="1CvMCa_p40v" resolve="deps" />
1199+
</node>
1200+
</node>
1201+
</node>
1202+
<node concept="A3Dl8" id="1CvMCa_p40b" role="3clF45">
1203+
<node concept="3Tqbb2" id="1CvMCa_p40c" role="A3Ik2">
1204+
<ref role="ehGHo" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
1205+
</node>
1206+
</node>
1207+
</node>
9611208
</node>
9621209
</model>
9631210

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.typetags.bindingtime/models/org.iets3.core.expr.typetags.bindingtime.structure.mps

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<import index="yv47" ref="r:da65683e-ff6f-430d-ab68-32a77df72c93(org.iets3.core.expr.toplevel.structure)" />
1212
<import index="w1hl" ref="r:04b74a30-84ff-4d44-89e3-8084278f9c79(org.iets3.core.expr.typetags.structure)" />
1313
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
14+
<import index="vs0r" ref="r:f7764ca4-8c75-4049-922b-08516400a727(com.mbeddr.core.base.structure)" implicit="true" />
1415
</imports>
1516
<registry>
1617
<language id="c72da2b9-7cce-4447-8389-f407dc1158b7" name="jetbrains.mps.lang.structure">
@@ -62,6 +63,9 @@
6263
<node concept="PrWs8" id="2tub4U553Hy" role="PzmwI">
6364
<ref role="PrY4T" to="yv47:2uR5X5ayM7T" resolve="IToplevelExprContent" />
6465
</node>
66+
<node concept="PrWs8" id="1CvMCa_p3Zt" role="PzmwI">
67+
<ref role="PrY4T" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
68+
</node>
6569
<node concept="1TJgyi" id="2tub4U558ns" role="1TKVEl">
6670
<property role="IQ2nx" value="2836753531041777116" />
6771
<property role="TrG5h" value="initial" />
@@ -103,6 +107,9 @@
103107
<node concept="PrWs8" id="13eh33ruPNS" role="PzmwI">
104108
<ref role="PrY4T" to="yv47:2uR5X5ayM7T" resolve="IToplevelExprContent" />
105109
</node>
110+
<node concept="PrWs8" id="1CvMCa_oA_c" role="PzmwI">
111+
<ref role="PrY4T" to="vs0r:59HbAIOYkEn" resolve="IDetectCycle" />
112+
</node>
106113
<node concept="1TJgyi" id="5XGFpL9THzj" role="1TKVEl">
107114
<property role="IQ2nx" value="6876061617854273747" />
108115
<property role="TrG5h" value="initial" />

0 commit comments

Comments
 (0)