Fix incremental program update not triggered in some cases.

Track invalidated set of nodes and update program correspondingly.
Use node instances as keys instead of node pointers.
This commit is contained in:
Fedor Isakov 2019-12-30 21:04:15 +01:00
parent 52d05e4953
commit d50d3cf9f6
3 changed files with 1314 additions and 711 deletions

View File

@ -458,6 +458,7 @@
<concept id="1240151544672" name="jetbrains.mps.baseLanguage.collections.structure.RemoveOperation" flags="nn" index="2YMH90" />
<concept id="1240216724530" name="jetbrains.mps.baseLanguage.collections.structure.LinkedHashMapCreator" flags="nn" index="32Fmki" />
<concept id="1201792049884" name="jetbrains.mps.baseLanguage.collections.structure.TranslateOperation" flags="nn" index="3goQfb" />
<concept id="1173946412755" name="jetbrains.mps.baseLanguage.collections.structure.RemoveAllElementsOperation" flags="nn" index="1kEaZ2" />
<concept id="1201872418428" name="jetbrains.mps.baseLanguage.collections.structure.GetKeysOperation" flags="nn" index="3lbrtF" />
<concept id="1197683403723" name="jetbrains.mps.baseLanguage.collections.structure.MapType" flags="in" index="3rvAFt">
<child id="1197683466920" name="keyType" index="3rvQeY" />
@ -6132,20 +6133,20 @@
</node>
</node>
</node>
<node concept="3clFbF" id="4QPCta1aZLN" role="3cqZAp">
<node concept="2OqwBi" id="4QPCta1aZLO" role="3clFbG">
<node concept="37vLTw" id="4QPCta1aZLP" role="2Oq$k0">
<node concept="3cpWs6" id="2fobfNk6_p1" role="3cqZAp">
<node concept="2OqwBi" id="2fobfNk6_p2" role="3cqZAk">
<node concept="37vLTw" id="2fobfNk6_p3" role="2Oq$k0">
<ref role="3cqZAo" node="4QPCta1aZLF" resolve="result" />
</node>
<node concept="liA8E" id="4QPCta1aZLQ" role="2OqNvi">
<node concept="liA8E" id="2fobfNk6_p4" role="2OqNvi">
<ref role="37wK5l" to="hano:7nkyKX7v7xb" resolve="and" />
<node concept="1rXfSq" id="4QPCta1aZLR" role="37wK5m">
<node concept="1rXfSq" id="2fobfNk6_p5" role="37wK5m">
<ref role="37wK5l" node="tIwzd1MM22" resolve="processRequired" />
<node concept="1Ls8ON" id="4QPCta1aZLS" role="37wK5m">
<node concept="37vLTw" id="3rCAg5k6tZ3" role="1Lso8e">
<node concept="1Ls8ON" id="2fobfNk6_p6" role="37wK5m">
<node concept="37vLTw" id="2fobfNk6_p7" role="1Lso8e">
<ref role="3cqZAo" node="3rCAg5k6tYU" resolve="reqd" />
</node>
<node concept="37vLTw" id="2Qe6u2cmBf6" role="1Lso8e">
<node concept="37vLTw" id="2fobfNk6_p8" role="1Lso8e">
<ref role="3cqZAo" node="2Qe6u2cmBeX" resolve="visited" />
</node>
</node>
@ -7674,11 +7675,8 @@
</node>
<node concept="liA8E" id="6nFpYluOuz4" role="2OqNvi">
<ref role="37wK5l" node="6nFpYlucRT5" resolve="recordUpdate" />
<node concept="2OqwBi" id="6nFpYluQt_M" role="37wK5m">
<node concept="37vLTw" id="6nFpYluOuz5" role="2Oq$k0">
<ref role="3cqZAo" node="tIwzd1I3Xp" resolve="node" />
</node>
<node concept="iZEcu" id="6nFpYluQvjE" role="2OqNvi" />
<node concept="37vLTw" id="6nFpYluOuz5" role="37wK5m">
<ref role="3cqZAo" node="tIwzd1I3Xp" resolve="node" />
</node>
<node concept="1Ls8ON" id="6nFpYluOyjg" role="37wK5m">
<node concept="1eOMI4" id="6nFpYluP4qL" role="1Lso8e">
@ -8481,11 +8479,8 @@
</node>
<node concept="liA8E" id="6nFpYlu0$Ow" role="2OqNvi">
<ref role="37wK5l" node="6nFpYlu02nI" resolve="recordRequirements" />
<node concept="2OqwBi" id="6nFpYluQqy9" role="37wK5m">
<node concept="37vLTw" id="6nFpYlu0_0q" role="2Oq$k0">
<ref role="3cqZAo" node="5ntLU8GlzgG" resolve="node" />
</node>
<node concept="iZEcu" id="6nFpYluQr1_" role="2OqNvi" />
<node concept="37vLTw" id="6nFpYlu0_0q" role="37wK5m">
<ref role="3cqZAo" node="5ntLU8GlzgG" resolve="node" />
</node>
<node concept="1LFfDK" id="6nFpYlu0_Xx" role="37wK5m">
<node concept="3cmrfG" id="6nFpYlu0A1I" role="1LF_Uc">
@ -9351,20 +9346,91 @@
</node>
<node concept="3Tm1VV" id="6nFpYltSnCR" role="1B3o_S" />
<node concept="3clFbS" id="6nFpYltSnCS" role="3clF47">
<node concept="3clFbF" id="6nFpYltSLS9" role="3cqZAp">
<node concept="1rXfSq" id="6nFpYltSLS7" role="3clFbG">
<ref role="37wK5l" node="6nFpYltFTQQ" resolve="flat" />
<node concept="37vLTw" id="6nFpYltSLYB" role="37wK5m">
<ref role="3cqZAo" node="6nFpYltSFnC" resolve="nodes" />
<node concept="3cpWs8" id="31_3CqJgOIt" role="3cqZAp">
<node concept="3cpWsn" id="31_3CqJgOIu" role="3cpWs9">
<property role="TrG5h" value="value" />
<node concept="16syzq" id="31_3CqJgOIv" role="1tU5fm">
<ref role="16sUi3" node="6nFpYltS$IB" resolve="T" />
</node>
<node concept="1rXfSq" id="6nFpYltWpWi" role="37wK5m">
<ref role="37wK5l" node="6nFpYltVXdg" resolve="singular" />
<node concept="37vLTw" id="6nFpYltWq6r" role="37wK5m">
<node concept="2OqwBi" id="31_3CqJgOIw" role="33vP2m">
<node concept="37vLTw" id="31_3CqJgOIx" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltSFn$" resolve="action" />
</node>
<node concept="liA8E" id="31_3CqJgOIy" role="2OqNvi">
<ref role="37wK5l" node="tIwzd1ILXm" resolve="initial" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="31_3CqJgFgo" role="3cqZAp">
<node concept="2OqwBi" id="31_3CqJgFCG" role="3clFbG">
<node concept="37vLTw" id="31_3CqJgFgm" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYlujVzU" resolve="updatesRecorder" />
</node>
<node concept="liA8E" id="31_3CqJgHIq" role="2OqNvi">
<ref role="37wK5l" node="31_3CqJfPFl" resolve="forEachFresh" />
<node concept="37vLTw" id="31_3CqJgM7A" role="37wK5m">
<ref role="3cqZAo" node="6nFpYltSFnC" resolve="nodes" />
</node>
<node concept="1bVj0M" id="31_3CqJgMH7" role="37wK5m">
<node concept="3clFbS" id="31_3CqJgMH9" role="1bW5cS">
<node concept="3clFbH" id="31_3CqJgN$3" role="3cqZAp" />
<node concept="3cpWs8" id="31_3CqJgPYf" role="3cqZAp">
<node concept="3cpWsn" id="31_3CqJgPYg" role="3cpWs9">
<property role="TrG5h" value="t" />
<node concept="16syzq" id="31_3CqJgPPL" role="1tU5fm">
<ref role="16sUi3" node="6nFpYltS$IB" resolve="T" />
</node>
<node concept="1rXfSq" id="31_3CqJgPYh" role="33vP2m">
<ref role="37wK5l" node="6nFpYltFTQQ" resolve="flat" />
<node concept="37vLTw" id="31_3CqJgPYi" role="37wK5m">
<ref role="3cqZAo" node="31_3CqJgMSQ" resolve="fresh" />
</node>
<node concept="1rXfSq" id="31_3CqJgPYj" role="37wK5m">
<ref role="37wK5l" node="6nFpYltVXdg" resolve="singular" />
<node concept="37vLTw" id="31_3CqJgPYk" role="37wK5m">
<ref role="3cqZAo" node="6nFpYltSFn$" resolve="action" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="31_3CqJgQWO" role="3cqZAp">
<node concept="37vLTI" id="31_3CqJgQWP" role="3clFbG">
<node concept="37vLTw" id="31_3CqJgQWQ" role="37vLTJ">
<ref role="3cqZAo" node="31_3CqJgOIu" resolve="value" />
</node>
<node concept="2OqwBi" id="31_3CqJgQWR" role="37vLTx">
<node concept="37vLTw" id="31_3CqJgQWS" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltSFn$" resolve="action" />
</node>
<node concept="liA8E" id="31_3CqJgQWT" role="2OqNvi">
<ref role="37wK5l" node="tIwzd1IBXa" resolve="bind" />
<node concept="37vLTw" id="31_3CqJgQWU" role="37wK5m">
<ref role="3cqZAo" node="31_3CqJgOIu" resolve="value" />
</node>
<node concept="37vLTw" id="31_3CqJgQWV" role="37wK5m">
<ref role="3cqZAo" node="31_3CqJgPYg" resolve="t" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="31_3CqJgN$8" role="3cqZAp" />
</node>
<node concept="37vLTG" id="31_3CqJgMSQ" role="1bW2Oz">
<property role="TrG5h" value="fresh" />
<node concept="2I9FWS" id="31_3CqJgNi8" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="31_3CqJgSmX" role="3cqZAp">
<node concept="37vLTw" id="31_3CqJgSmV" role="3clFbG">
<ref role="3cqZAo" node="31_3CqJgOIu" resolve="value" />
</node>
</node>
</node>
<node concept="16euLQ" id="6nFpYltS$IB" role="16eVyc">
<property role="TrG5h" value="T" />
@ -11314,32 +11380,29 @@
<node concept="3cqZAl" id="6nFpYlu7fpO" role="3clF45" />
<node concept="3Tm1VV" id="6nFpYlu7fpP" role="1B3o_S" />
<node concept="3clFbS" id="6nFpYlu7fpQ" role="3clF47">
<node concept="3clFbJ" id="4Zz6A5Ih2MG" role="3cqZAp">
<node concept="3clFbS" id="4Zz6A5Ih2MI" role="3clFbx">
<node concept="3clFbF" id="6nFpYlu7gv$" role="3cqZAp">
<node concept="1rXfSq" id="6nFpYlu7gvz" role="3clFbG">
<ref role="37wK5l" node="3u5wJtdQ7a" resolve="startTrackingChanges" />
<node concept="37vLTw" id="6nFpYlu7gHN" role="37wK5m">
<ref role="3cqZAo" node="6nFpYlu7giF" resolve="model" />
</node>
<node concept="37vLTw" id="6nFpYlu7gJY" role="37wK5m">
<ref role="3cqZAo" node="6nFpYlu7giH" resolve="unit" />
</node>
<node concept="3clFbF" id="6YGKjaPwvlA" role="3cqZAp">
<node concept="37vLTI" id="6YGKjaPwvlC" role="3clFbG">
<node concept="2OqwBi" id="6YGKjaPw_Bk" role="37vLTJ">
<node concept="Xjq3P" id="6YGKjaPw_NL" role="2Oq$k0" />
<node concept="2OwXpG" id="6YGKjaPw_Bn" role="2OqNvi">
<ref role="2Oxat5" node="6YGKjaPwvly" resolve="model" />
</node>
</node>
<node concept="37vLTw" id="6YGKjaPwvlG" role="37vLTx">
<ref role="3cqZAo" node="6nFpYlu7giF" resolve="model" />
</node>
</node>
<node concept="1Wc70l" id="4Zz6A5Ih39Q" role="3clFbw">
<node concept="3y3z36" id="4Zz6A5Ih3mO" role="3uHU7w">
<node concept="10Nm6u" id="4Zz6A5Ih3tG" role="3uHU7w" />
<node concept="37vLTw" id="4Zz6A5Ih3cL" role="3uHU7B">
<ref role="3cqZAo" node="6nFpYlu7giH" resolve="unit" />
</node>
<node concept="3clFbF" id="6YGKjaPwyUY" role="3cqZAp">
<node concept="37vLTI" id="6YGKjaPwyV0" role="3clFbG">
<node concept="2OqwBi" id="6YGKjaPw_Qt" role="37vLTJ">
<node concept="Xjq3P" id="6YGKjaPw_S6" role="2Oq$k0" />
<node concept="2OwXpG" id="6YGKjaPw_Qw" role="2OqNvi">
<ref role="2Oxat5" node="6YGKjaPwyUU" resolve="unit" />
</node>
</node>
<node concept="3y3z36" id="4Zz6A5Ih31f" role="3uHU7B">
<node concept="37vLTw" id="4Zz6A5Ih2Q_" role="3uHU7B">
<ref role="3cqZAo" node="6nFpYlu7giF" resolve="model" />
</node>
<node concept="10Nm6u" id="4Zz6A5Ih37Y" role="3uHU7w" />
<node concept="37vLTw" id="6YGKjaPwyV4" role="37vLTx">
<ref role="3cqZAo" node="6nFpYlu7giH" resolve="unit" />
</node>
</node>
</node>
@ -11347,7 +11410,7 @@
</node>
<node concept="2tJIrI" id="6nFpYlu7gKO" role="jymVt" />
<node concept="3clFb_" id="6nFpYlu7hTH" role="jymVt">
<property role="TrG5h" value="dispose" />
<property role="TrG5h" value="deactivate" />
<node concept="3cqZAl" id="6nFpYlu7hTJ" role="3clF45" />
<node concept="3Tm1VV" id="6nFpYlu7hTK" role="1B3o_S" />
<node concept="3clFbS" id="6nFpYlu7hTL" role="3clF47">
@ -11359,11 +11422,48 @@
</node>
</node>
<node concept="2tJIrI" id="6nFpYlu7eAJ" role="jymVt" />
<node concept="3clFb_" id="6YGKjaPwkND" role="jymVt">
<property role="TrG5h" value="activate" />
<node concept="3cqZAl" id="6YGKjaPwkNE" role="3clF45" />
<node concept="3Tm1VV" id="6YGKjaPwkNF" role="1B3o_S" />
<node concept="3clFbS" id="6YGKjaPwkNG" role="3clF47">
<node concept="3clFbJ" id="4Zz6A5Ih2MG" role="3cqZAp">
<node concept="3clFbS" id="4Zz6A5Ih2MI" role="3clFbx">
<node concept="3clFbF" id="6nFpYlu7gv$" role="3cqZAp">
<node concept="1rXfSq" id="6nFpYlu7gvz" role="3clFbG">
<ref role="37wK5l" node="3u5wJtdQ7a" resolve="startTrackingChanges" />
<node concept="37vLTw" id="6YGKjaPwASZ" role="37wK5m">
<ref role="3cqZAo" node="6YGKjaPwvly" resolve="model" />
</node>
<node concept="37vLTw" id="6YGKjaPwB8m" role="37wK5m">
<ref role="3cqZAo" node="6YGKjaPwyUU" resolve="unit" />
</node>
</node>
</node>
</node>
<node concept="1Wc70l" id="4Zz6A5Ih39Q" role="3clFbw">
<node concept="3y3z36" id="4Zz6A5Ih3mO" role="3uHU7w">
<node concept="10Nm6u" id="4Zz6A5Ih3tG" role="3uHU7w" />
<node concept="37vLTw" id="6YGKjaPwAEI" role="3uHU7B">
<ref role="3cqZAo" node="6YGKjaPwyUU" resolve="unit" />
</node>
</node>
<node concept="3y3z36" id="4Zz6A5Ih31f" role="3uHU7B">
<node concept="37vLTw" id="6YGKjaPwAsJ" role="3uHU7B">
<ref role="3cqZAo" node="6YGKjaPwvly" resolve="model" />
</node>
<node concept="10Nm6u" id="4Zz6A5Ih37Y" role="3uHU7w" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="6YGKjaPwkNC" role="jymVt" />
<node concept="3clFb_" id="6nFpYlu02nI" role="jymVt">
<property role="TrG5h" value="recordRequirements" />
<node concept="37vLTG" id="6nFpYlu02rL" role="3clF46">
<property role="TrG5h" value="sourceRef" />
<node concept="2sp9CU" id="6nFpYluQmd1" role="1tU5fm" />
<node concept="3Tqbb2" id="1ZiI2IC50oP" role="1tU5fm" />
</node>
<node concept="37vLTG" id="6nFpYlu02t7" role="3clF46">
<property role="TrG5h" value="requirements" />
@ -11380,11 +11480,8 @@
<node concept="2OqwBi" id="6nFpYlu4biz" role="3clFbG">
<node concept="1rXfSq" id="6nFpYlu4aBL" role="2Oq$k0">
<ref role="37wK5l" node="6nFpYlu3KpJ" resolve="sourcesOf" />
<node concept="2OqwBi" id="6nFpYlu4cq8" role="37wK5m">
<node concept="37vLTw" id="6nFpYlu4aFl" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYlu4aqe" resolve="req" />
</node>
<node concept="iZEcu" id="6nFpYlu4cAG" role="2OqNvi" />
<node concept="37vLTw" id="6nFpYlu4aFl" role="37wK5m">
<ref role="3cqZAo" node="6nFpYlu4aqe" resolve="req" />
</node>
</node>
<node concept="TSZUe" id="6nFpYlu4bNY" role="2OqNvi">
@ -11410,7 +11507,7 @@
<property role="TrG5h" value="recordUpdate" />
<node concept="37vLTG" id="6nFpYlud3F7" role="3clF46">
<property role="TrG5h" value="sourceRef" />
<node concept="2sp9CU" id="6nFpYluQnkf" role="1tU5fm" />
<node concept="3Tqbb2" id="1ZiI2IC52UC" role="1tU5fm" />
</node>
<node concept="37vLTG" id="6nFpYlud4G6" role="3clF46">
<property role="TrG5h" value="update" />
@ -11442,9 +11539,9 @@
<node concept="3clFb_" id="6nFpYlue$oB" role="jymVt">
<property role="TrG5h" value="forEachUpdate" />
<node concept="37vLTG" id="6nFpYluT3XT" role="3clF46">
<property role="TrG5h" value="refs" />
<property role="TrG5h" value="nodes" />
<node concept="3vKaQO" id="6nFpYluT6Ha" role="1tU5fm">
<node concept="2sp9CU" id="6nFpYluT72Z" role="3O5elw" />
<node concept="3Tqbb2" id="1ZiI2IC5kiS" role="3O5elw" />
</node>
</node>
<node concept="37vLTG" id="6nFpYlueEY7" role="3clF46">
@ -11475,7 +11572,7 @@
</node>
<node concept="kI3uX" id="6nFpYlueYAm" role="2OqNvi">
<node concept="37vLTw" id="6nFpYlueYAn" role="kIiFs">
<ref role="3cqZAo" node="6nFpYlueVGw" resolve="ref" />
<ref role="3cqZAo" node="6nFpYlueVGw" resolve="n" />
</node>
</node>
</node>
@ -11516,11 +11613,11 @@
</node>
</node>
<node concept="3cpWsn" id="6nFpYlueVGw" role="1Duv9x">
<property role="TrG5h" value="ref" />
<node concept="2sp9CU" id="6nFpYlueVG$" role="1tU5fm" />
<property role="TrG5h" value="n" />
<node concept="3Tqbb2" id="1ZiI2IC5v73" role="1tU5fm" />
</node>
<node concept="37vLTw" id="6nFpYluTkDq" role="1DdaDG">
<ref role="3cqZAo" node="6nFpYluT3XT" resolve="refs" />
<ref role="3cqZAo" node="6nFpYluT3XT" resolve="nodes" />
</node>
</node>
</node>
@ -11570,7 +11667,7 @@
<node concept="3clFb_" id="6nFpYlu7lKh" role="jymVt">
<property role="TrG5h" value="invalidatedSet" />
<node concept="2hMVRd" id="6nFpYlu7m_S" role="3clF45">
<node concept="2sp9CU" id="6nFpYlu7nxa" role="2hN53Y" />
<node concept="3Tqbb2" id="1ZiI2IC5n$Q" role="2hN53Y" />
</node>
<node concept="3Tm1VV" id="6nFpYluSUUT" role="1B3o_S" />
<node concept="3clFbS" id="6nFpYlu7lKl" role="3clF47">
@ -11578,11 +11675,11 @@
<node concept="3cpWsn" id="6nFpYlu7tZj" role="3cpWs9">
<property role="TrG5h" value="retval" />
<node concept="2hMVRd" id="6nFpYlu7tFG" role="1tU5fm">
<node concept="2sp9CU" id="6nFpYlu7tFJ" role="2hN53Y" />
<node concept="3Tqbb2" id="1ZiI2IC56RH" role="2hN53Y" />
</node>
<node concept="2ShNRf" id="6nFpYlu7tZk" role="33vP2m">
<node concept="2i4dXS" id="6nFpYlu7tZl" role="2ShVmc">
<node concept="2sp9CU" id="6nFpYlu7tZm" role="HW$YZ" />
<node concept="3Tqbb2" id="1ZiI2IC58iO" role="HW$YZ" />
<node concept="37vLTw" id="6nFpYlu7tZn" role="I$8f6">
<ref role="3cqZAo" node="6nFpYlu6n2t" resolve="changeSet" />
</node>
@ -11827,15 +11924,77 @@
</node>
</node>
</node>
<node concept="2tJIrI" id="31_3CqJfK8C" role="jymVt" />
<node concept="3clFb_" id="31_3CqJfPFl" role="jymVt">
<property role="TrG5h" value="forEachFresh" />
<node concept="37vLTG" id="31_3CqJgdi5" role="3clF46">
<property role="TrG5h" value="nodes" />
<node concept="A3Dl8" id="31_3CqJglvD" role="1tU5fm">
<node concept="3Tqbb2" id="31_3CqJglMR" role="A3Ik2" />
</node>
</node>
<node concept="37vLTG" id="31_3CqJgmzB" role="3clF46">
<property role="TrG5h" value="proc" />
<node concept="1ajhzC" id="31_3CqJgplz" role="1tU5fm">
<node concept="3cqZAl" id="31_3CqJgqf1" role="1ajl9A" />
<node concept="2I9FWS" id="31_3CqJgpVS" role="1ajw0F" />
</node>
</node>
<node concept="3cqZAl" id="31_3CqJfPFn" role="3clF45" />
<node concept="3Tm1VV" id="31_3CqJfPFo" role="1B3o_S" />
<node concept="3clFbS" id="31_3CqJfPFp" role="3clF47">
<node concept="3cpWs8" id="31_3CqJgBGo" role="3cqZAp">
<node concept="3cpWsn" id="31_3CqJgBGp" role="3cpWs9">
<property role="TrG5h" value="fresh" />
<node concept="_YKpA" id="31_3CqJgBvx" role="1tU5fm">
<node concept="3Tqbb2" id="31_3CqJgBv$" role="_ZDj9" />
</node>
<node concept="2ShNRf" id="31_3CqJgBGq" role="33vP2m">
<node concept="Tc6Ow" id="31_3CqJgBGr" role="2ShVmc">
<node concept="3Tqbb2" id="31_3CqJgBGs" role="HW$YZ" />
<node concept="37vLTw" id="31_3CqJgBGt" role="I$8f6">
<ref role="3cqZAo" node="31_3CqJgdi5" resolve="nodes" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="31_3CqJgqMB" role="3cqZAp">
<node concept="2OqwBi" id="31_3CqJgtZQ" role="3clFbG">
<node concept="37vLTw" id="31_3CqJgENO" role="2Oq$k0">
<ref role="3cqZAo" node="31_3CqJgBGp" resolve="fresh" />
</node>
<node concept="1kEaZ2" id="31_3CqJguvc" role="2OqNvi">
<node concept="2OqwBi" id="31_3CqJgwCu" role="25WWJ7">
<node concept="37vLTw" id="31_3CqJgv$f" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYlud9Ge" resolve="source2updates" />
</node>
<node concept="3lbrtF" id="31_3CqJgyAr" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="31_3CqJg$fY" role="3cqZAp">
<node concept="2Sg_IR" id="31_3CqJg$A5" role="3clFbG">
<node concept="37vLTw" id="31_3CqJg$A6" role="2SgG2M">
<ref role="3cqZAo" node="31_3CqJgmzB" resolve="proc" />
</node>
<node concept="37vLTw" id="31_3CqJgEYM" role="2SgHGx">
<ref role="3cqZAo" node="31_3CqJgBGp" resolve="fresh" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="4hQVL4f8ngQ" role="jymVt" />
<node concept="3clFb_" id="6nFpYlu3KpJ" role="jymVt">
<property role="TrG5h" value="sourcesOf" />
<node concept="37vLTG" id="6nFpYlu3W$E" role="3clF46">
<property role="TrG5h" value="req" />
<node concept="2sp9CU" id="6nFpYlu3Y2m" role="1tU5fm" />
<node concept="3Tqbb2" id="1ZiI2IC5qMN" role="1tU5fm" />
</node>
<node concept="2hMVRd" id="6nFpYlu3SaN" role="3clF45">
<node concept="2sp9CU" id="6nFpYlu3SbH" role="2hN53Y" />
<node concept="3Tqbb2" id="1ZiI2IC5qFB" role="2hN53Y" />
</node>
<node concept="3Tm6S6" id="6nFpYlu3N1F" role="1B3o_S" />
<node concept="3clFbS" id="6nFpYlu3KpN" role="3clF47">
@ -11857,7 +12016,7 @@
<node concept="37vLTI" id="6nFpYlu48gs" role="3clFbG">
<node concept="2ShNRf" id="6nFpYlu48lo" role="37vLTx">
<node concept="2i4dXS" id="6nFpYlu48jD" role="2ShVmc">
<node concept="2sp9CU" id="6nFpYlu48jE" role="HW$YZ" />
<node concept="3Tqbb2" id="1ZiI2IC5rpg" role="HW$YZ" />
</node>
</node>
<node concept="3EllGN" id="6nFpYlu47AA" role="37vLTJ">
@ -11889,7 +12048,7 @@
<property role="TrG5h" value="updatesOf" />
<node concept="37vLTG" id="6nFpYludzRP" role="3clF46">
<property role="TrG5h" value="src" />
<node concept="2sp9CU" id="6nFpYludzRQ" role="1tU5fm" />
<node concept="3Tqbb2" id="1ZiI2IC5ruK" role="1tU5fm" />
</node>
<node concept="_YKpA" id="6nFpYludUyx" role="3clF45">
<node concept="16syzq" id="6nFpYludUyy" role="_ZDj9">
@ -12037,8 +12196,8 @@
<node concept="3Tm6S6" id="6nFpYlu71k4" role="1B3o_S" />
<node concept="3cqZAl" id="6nFpYlu71k5" role="3clF45" />
<node concept="37vLTG" id="6nFpYlu71jw" role="3clF46">
<property role="TrG5h" value="pointer" />
<node concept="2sp9CU" id="6nFpYlu71jx" role="1tU5fm" />
<property role="TrG5h" value="node" />
<node concept="3Tqbb2" id="1ZiI2IC5rR2" role="1tU5fm" />
</node>
<node concept="3clFbS" id="6nFpYlu71jq" role="3clF47">
<node concept="3clFbF" id="6nFpYlu71jr" role="3cqZAp">
@ -12048,7 +12207,7 @@
</node>
<node concept="TSZUe" id="6nFpYlu71ju" role="2OqNvi">
<node concept="37vLTw" id="6nFpYlu71k0" role="25WWJ7">
<ref role="3cqZAo" node="6nFpYlu71jw" resolve="pointer" />
<ref role="3cqZAo" node="6nFpYlu71jw" resolve="node" />
</node>
</node>
</node>
@ -12056,6 +12215,92 @@
</node>
</node>
<node concept="2tJIrI" id="6nFpYlu4rA6" role="jymVt" />
<node concept="3clFb_" id="3yEb0I3Qr8G" role="jymVt">
<property role="TrG5h" value="updateChangeSetRecursively" />
<node concept="3Tm6S6" id="3yEb0I3Qr8H" role="1B3o_S" />
<node concept="3cqZAl" id="3yEb0I3Qr8I" role="3clF45" />
<node concept="37vLTG" id="3yEb0I3Qr8J" role="3clF46">
<property role="TrG5h" value="node" />
<node concept="3Tqbb2" id="3yEb0I3Qr8K" role="1tU5fm" />
</node>
<node concept="3clFbS" id="3yEb0I3Qr8L" role="3clF47">
<node concept="3cpWs8" id="3yEb0I3QDqX" role="3cqZAp">
<node concept="3cpWsn" id="3yEb0I3QDqY" role="3cpWs9">
<property role="TrG5h" value="queue" />
<node concept="_YKpA" id="3yEb0I3QDNl" role="1tU5fm">
<node concept="3Tqbb2" id="3yEb0I3QDNn" role="_ZDj9" />
</node>
<node concept="2ShNRf" id="3yEb0I3QDqZ" role="33vP2m">
<node concept="2Jqq0_" id="3yEb0I3QDr0" role="2ShVmc">
<node concept="3Tqbb2" id="3yEb0I3QDr1" role="HW$YZ" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="3yEb0I3QAKW" role="3cqZAp">
<node concept="2OqwBi" id="3yEb0I3QELL" role="3clFbG">
<node concept="37vLTw" id="3yEb0I3QDr2" role="2Oq$k0">
<ref role="3cqZAo" node="3yEb0I3QDqY" resolve="queue" />
</node>
<node concept="TSZUe" id="3yEb0I3QFN6" role="2OqNvi">
<node concept="37vLTw" id="3yEb0I3QFSb" role="25WWJ7">
<ref role="3cqZAo" node="3yEb0I3Qr8J" resolve="node" />
</node>
</node>
</node>
</node>
<node concept="2$JKZl" id="3yEb0I3QGfX" role="3cqZAp">
<node concept="3clFbS" id="3yEb0I3QGfZ" role="2LFqv$">
<node concept="3cpWs8" id="3yEb0I3QJfV" role="3cqZAp">
<node concept="3cpWsn" id="3yEb0I3QJfW" role="3cpWs9">
<property role="TrG5h" value="n" />
<node concept="3Tqbb2" id="3yEb0I3QJee" role="1tU5fm" />
<node concept="2OqwBi" id="3yEb0I3QJfX" role="33vP2m">
<node concept="37vLTw" id="3yEb0I3QJfY" role="2Oq$k0">
<ref role="3cqZAo" node="3yEb0I3QDqY" resolve="queue" />
</node>
<node concept="2Kt2Hk" id="3yEb0I3QJfZ" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbF" id="3yEb0I3Qr8M" role="3cqZAp">
<node concept="2OqwBi" id="3yEb0I3Qr8N" role="3clFbG">
<node concept="37vLTw" id="3yEb0I3Qr8O" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYlu6n2t" resolve="changeSet" />
</node>
<node concept="TSZUe" id="3yEb0I3Qr8P" role="2OqNvi">
<node concept="37vLTw" id="3yEb0I3QKQp" role="25WWJ7">
<ref role="3cqZAo" node="3yEb0I3QJfW" resolve="n" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="3yEb0I3QLUX" role="3cqZAp">
<node concept="2OqwBi" id="3yEb0I3QN8L" role="3clFbG">
<node concept="37vLTw" id="3yEb0I3QLUV" role="2Oq$k0">
<ref role="3cqZAo" node="3yEb0I3QDqY" resolve="queue" />
</node>
<node concept="X8dFx" id="3yEb0I3QOaA" role="2OqNvi">
<node concept="2OqwBi" id="3yEb0I3QOs8" role="25WWJ7">
<node concept="37vLTw" id="3yEb0I3QOg0" role="2Oq$k0">
<ref role="3cqZAo" node="3yEb0I3QJfW" resolve="n" />
</node>
<node concept="32TBzR" id="3yEb0I3QOAh" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="3yEb0I3QHEc" role="2$JKZa">
<node concept="37vLTw" id="3yEb0I3QGA5" role="2Oq$k0">
<ref role="3cqZAo" node="3yEb0I3QDqY" resolve="queue" />
</node>
<node concept="3GX2aA" id="3yEb0I3QIFz" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="3yEb0I3Qr8F" role="jymVt" />
<node concept="312cEu" id="6nFpYltKKoQ" role="jymVt">
<property role="2bfB8j" value="true" />
<property role="TrG5h" value="ChangesTracker" />
@ -12249,21 +12494,18 @@
<node concept="3clFbF" id="6nFpYlu73j7" role="3cqZAp">
<node concept="1rXfSq" id="6nFpYlu73j6" role="3clFbG">
<ref role="37wK5l" node="6nFpYlu71k3" resolve="updateChangeSet" />
<node concept="2OqwBi" id="6nFpYlu73iY" role="37wK5m">
<node concept="1eOMI4" id="6nFpYlu73iZ" role="2Oq$k0">
<node concept="10QFUN" id="6nFpYlu73j0" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73j1" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73j2" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQqr" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73j3" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SPropertyChangeEvent.getNode()" resolve="getNode" />
</node>
<node concept="1eOMI4" id="6nFpYlu73iZ" role="37wK5m">
<node concept="10QFUN" id="6nFpYlu73j0" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73j1" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73j2" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQqr" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73j3" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SPropertyChangeEvent.getNode()" resolve="getNode" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73j4" role="10QFUM" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73j4" role="10QFUM" />
</node>
<node concept="iZEcu" id="6nFpYlu73j5" role="2OqNvi" />
</node>
</node>
</node>
@ -12300,21 +12542,18 @@
<node concept="3clFbF" id="6nFpYlu73tX" role="3cqZAp">
<node concept="1rXfSq" id="6nFpYlu73tW" role="3clFbG">
<ref role="37wK5l" node="6nFpYlu71k3" resolve="updateChangeSet" />
<node concept="2OqwBi" id="6nFpYlu73tO" role="37wK5m">
<node concept="1eOMI4" id="6nFpYlu73tP" role="2Oq$k0">
<node concept="10QFUN" id="6nFpYlu73tQ" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73tR" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73tS" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQq$" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73tT" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SReferenceChangeEvent.getNode()" resolve="getNode" />
</node>
<node concept="1eOMI4" id="6nFpYlu73tP" role="37wK5m">
<node concept="10QFUN" id="6nFpYlu73tQ" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73tR" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73tS" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQq$" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73tT" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SReferenceChangeEvent.getNode()" resolve="getNode" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73tU" role="10QFUM" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73tU" role="10QFUM" />
</node>
<node concept="iZEcu" id="6nFpYlu73tV" role="2OqNvi" />
</node>
</node>
</node>
@ -12351,42 +12590,36 @@
<node concept="3clFbF" id="6nFpYlu73uh" role="3cqZAp">
<node concept="1rXfSq" id="6nFpYlu73ug" role="3clFbG">
<ref role="37wK5l" node="6nFpYlu71k3" resolve="updateChangeSet" />
<node concept="2OqwBi" id="6nFpYlu73u8" role="37wK5m">
<node concept="1eOMI4" id="6nFpYlu73u9" role="2Oq$k0">
<node concept="10QFUN" id="6nFpYlu73ua" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73ub" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73uc" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQqH" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73ud" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SNodeAddEvent.getParent()" resolve="getParent" />
</node>
<node concept="1eOMI4" id="6nFpYlu73u9" role="37wK5m">
<node concept="10QFUN" id="6nFpYlu73ua" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73ub" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73uc" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQqH" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73ud" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SNodeAddEvent.getParent()" resolve="getParent" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73ue" role="10QFUM" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73ue" role="10QFUM" />
</node>
<node concept="iZEcu" id="6nFpYlu73uf" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbF" id="6nFpYlu73uL" role="3cqZAp">
<node concept="1rXfSq" id="6nFpYlu73uK" role="3clFbG">
<ref role="37wK5l" node="6nFpYlu71k3" resolve="updateChangeSet" />
<node concept="2OqwBi" id="6nFpYlu73uC" role="37wK5m">
<node concept="1eOMI4" id="6nFpYlu73uD" role="2Oq$k0">
<node concept="10QFUN" id="6nFpYlu73uE" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73uF" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73uG" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQqH" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73uH" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SNodeAddEvent.getChild()" resolve="getChild" />
</node>
<ref role="37wK5l" node="3yEb0I3Qr8G" resolve="updateChangeSetRecursively" />
<node concept="1eOMI4" id="6nFpYlu73uD" role="37wK5m">
<node concept="10QFUN" id="6nFpYlu73uE" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73uF" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73uG" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQqH" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73uH" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SNodeAddEvent.getChild()" resolve="getChild" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73uI" role="10QFUM" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73uI" role="10QFUM" />
</node>
<node concept="iZEcu" id="6nFpYlu73uJ" role="2OqNvi" />
</node>
</node>
</node>
@ -12423,42 +12656,36 @@
<node concept="3clFbF" id="6nFpYlu73vf" role="3cqZAp">
<node concept="1rXfSq" id="6nFpYlu73ve" role="3clFbG">
<ref role="37wK5l" node="6nFpYlu71k3" resolve="updateChangeSet" />
<node concept="2OqwBi" id="6nFpYlu73v6" role="37wK5m">
<node concept="1eOMI4" id="6nFpYlu73v7" role="2Oq$k0">
<node concept="10QFUN" id="6nFpYlu73v8" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73v9" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73va" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQqQ" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73vb" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SNodeRemoveEvent.getParent()" resolve="getParent" />
</node>
<node concept="1eOMI4" id="6nFpYlu73v7" role="37wK5m">
<node concept="10QFUN" id="6nFpYlu73v8" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73v9" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73va" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQqQ" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73vb" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SNodeRemoveEvent.getParent()" resolve="getParent" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73vc" role="10QFUM" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73vc" role="10QFUM" />
</node>
<node concept="iZEcu" id="6nFpYlu73vd" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbF" id="6nFpYlu71k8" role="3cqZAp">
<node concept="1rXfSq" id="6nFpYlu71k7" role="3clFbG">
<ref role="37wK5l" node="6nFpYlu71k3" resolve="updateChangeSet" />
<node concept="2OqwBi" id="6nFpYlu73KA" role="37wK5m">
<node concept="1eOMI4" id="6nFpYlu73KB" role="2Oq$k0">
<node concept="10QFUN" id="6nFpYlu73KC" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73KD" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73KE" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQqQ" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73KF" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SNodeRemoveEvent.getChild()" resolve="getChild" />
</node>
<ref role="37wK5l" node="3yEb0I3Qr8G" resolve="updateChangeSetRecursively" />
<node concept="1eOMI4" id="6nFpYlu73KB" role="37wK5m">
<node concept="10QFUN" id="6nFpYlu73KC" role="1eOMHV">
<node concept="2OqwBi" id="6nFpYlu73KD" role="10QFUP">
<node concept="37vLTw" id="6nFpYlu73KE" role="2Oq$k0">
<ref role="3cqZAo" node="6nFpYltKQqQ" resolve="event" />
</node>
<node concept="liA8E" id="6nFpYlu73KF" role="2OqNvi">
<ref role="37wK5l" to="cmfw:~SNodeRemoveEvent.getChild()" resolve="getChild" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73KG" role="10QFUM" />
</node>
<node concept="3Tqbb2" id="6nFpYlu73KG" role="10QFUM" />
</node>
<node concept="iZEcu" id="6nFpYlu73KH" role="2OqNvi" />
</node>
</node>
</node>
@ -12678,16 +12905,16 @@
<property role="TrG5h" value="reversedRequirements" />
<node concept="3Tm6S6" id="6nFpYlu3FKb" role="1B3o_S" />
<node concept="3rvAFt" id="6nFpYlu3INu" role="1tU5fm">
<node concept="2sp9CU" id="6nFpYlu3Kgi" role="3rvQeY" />
<node concept="3Tqbb2" id="1ZiI2IC5bJ4" role="3rvQeY" />
<node concept="2hMVRd" id="6nFpYlu3S8L" role="3rvSg0">
<node concept="2sp9CU" id="6nFpYlu3S8N" role="2hN53Y" />
<node concept="3Tqbb2" id="1ZiI2IC5di4" role="2hN53Y" />
</node>
</node>
<node concept="2ShNRf" id="6nFpYlu3KnQ" role="33vP2m">
<node concept="3rGOSV" id="6nFpYlu3Knd" role="2ShVmc">
<node concept="2sp9CU" id="6nFpYlu3Kne" role="3rHrn6" />
<node concept="3Tqbb2" id="1ZiI2IC5f0J" role="3rHrn6" />
<node concept="2hMVRd" id="6nFpYlu3QAX" role="3rHtpV">
<node concept="2sp9CU" id="6nFpYlu3QAZ" role="2hN53Y" />
<node concept="3Tqbb2" id="1ZiI2IC5gIq" role="2hN53Y" />
</node>
</node>
</node>
@ -12696,7 +12923,7 @@
<property role="TrG5h" value="source2updates" />
<node concept="3Tm6S6" id="6nFpYlud9Gf" role="1B3o_S" />
<node concept="3rvAFt" id="6nFpYludbDB" role="1tU5fm">
<node concept="2sp9CU" id="6nFpYludbHL" role="3rvQeY" />
<node concept="3Tqbb2" id="1ZiI2IC5aVV" role="3rvQeY" />
<node concept="_YKpA" id="6nFpYludxlp" role="3rvSg0">
<node concept="16syzq" id="6nFpYludTT$" role="_ZDj9">
<ref role="16sUi3" node="6nFpYludLhd" resolve="U" />
@ -12705,7 +12932,7 @@
</node>
<node concept="2ShNRf" id="6nFpYludivF" role="33vP2m">
<node concept="3rGOSV" id="6nFpYluditI" role="2ShVmc">
<node concept="2sp9CU" id="6nFpYluditJ" role="3rHrn6" />
<node concept="3Tqbb2" id="1ZiI2IC5i9d" role="3rHrn6" />
<node concept="_YKpA" id="6nFpYludyYL" role="3rHtpV">
<node concept="16syzq" id="6nFpYludY1w" role="_ZDj9">
<ref role="16sUi3" node="6nFpYludLhd" resolve="U" />
@ -12725,11 +12952,11 @@
<property role="TrG5h" value="changeSet" />
<node concept="3Tm6S6" id="6nFpYlu6n2u" role="1B3o_S" />
<node concept="2hMVRd" id="6nFpYlu6nmb" role="1tU5fm">
<node concept="2sp9CU" id="6nFpYlu6nqJ" role="2hN53Y" />
<node concept="3Tqbb2" id="1ZiI2IC59TO" role="2hN53Y" />
</node>
<node concept="2ShNRf" id="6nFpYlu6nQ6" role="33vP2m">
<node concept="2i4dXS" id="6nFpYlu6nPk" role="2ShVmc">
<node concept="2sp9CU" id="6nFpYlu6nPl" role="HW$YZ" />
<node concept="3Tqbb2" id="1ZiI2IC5iRc" role="HW$YZ" />
</node>
</node>
</node>
@ -12748,6 +12975,16 @@
</node>
</node>
</node>
<node concept="312cEg" id="6YGKjaPwvly" role="jymVt">
<property role="TrG5h" value="model" />
<node concept="3Tm6S6" id="6YGKjaPwvlz" role="1B3o_S" />
<node concept="H_c77" id="6YGKjaPwvl_" role="1tU5fm" />
</node>
<node concept="312cEg" id="6YGKjaPwyUU" role="jymVt">
<property role="TrG5h" value="unit" />
<node concept="3Tm6S6" id="6YGKjaPwyUV" role="1B3o_S" />
<node concept="3Tqbb2" id="6YGKjaPwyUX" role="1tU5fm" />
</node>
<node concept="2tJIrI" id="4hQVL4f8_uU" role="jymVt" />
<node concept="3Tm1VV" id="6nFpYlu02jE" role="1B3o_S" />
<node concept="16euLQ" id="6nFpYludLhd" role="16eVyc">

View File

@ -394,6 +394,7 @@
<concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
<child id="1204796294226" name="closure" index="23t8la" />
</concept>
<concept id="1226516258405" name="jetbrains.mps.baseLanguage.collections.structure.HashSetCreator" flags="nn" index="2i4dXS" />
<concept id="1151689724996" name="jetbrains.mps.baseLanguage.collections.structure.SequenceType" flags="in" index="A3Dl8">
<child id="1151689745422" name="elementType" index="A3Ik2" />
</concept>
@ -401,6 +402,9 @@
<child id="1235573175711" name="elementType" index="2HTBi0" />
<child id="1235573187520" name="singletonValue" index="2HTEbv" />
</concept>
<concept id="1237721394592" name="jetbrains.mps.baseLanguage.collections.structure.AbstractContainerCreator" flags="nn" index="HWqM0">
<child id="1237721435807" name="elementType" index="HW$YZ" />
</concept>
<concept id="1203518072036" name="jetbrains.mps.baseLanguage.collections.structure.SmartClosureParameterDeclaration" flags="ig" index="Rh6nW" />
<concept id="1197683403723" name="jetbrains.mps.baseLanguage.collections.structure.MapType" flags="in" index="3rvAFt">
<child id="1197683466920" name="keyType" index="3rvQeY" />
@ -587,6 +591,11 @@
<ref role="37wK5l" to="mhbf:~SNode.getReference()" resolve="getReference" />
</node>
</node>
<node concept="2ShNRf" id="3yEb0I3XyF_" role="37wK5m">
<node concept="2i4dXS" id="3yEb0I3XyZB" role="2ShVmc">
<node concept="3Tqbb2" id="3yEb0I3XzBT" role="HW$YZ" />
</node>
</node>
<node concept="1bVj0M" id="6QH_LDtdXLP" role="37wK5m">
<node concept="3clFbS" id="6QH_LDtdXLQ" role="1bW5cS">
<node concept="3clFbH" id="6$gg4kAgPiE" role="3cqZAp" />