Switch to collecting types during typechecking using the explicit type collector.

Use the parameter to typechecking query TYPECHECK to collect types.
Stop highlighting every expression with its type.
This commit is contained in:
Fedor Isakov 2019-10-10 15:50:43 +02:00
parent f8dcf127db
commit 5258a9343f
5 changed files with 416 additions and 323 deletions

View File

@ -2633,22 +2633,6 @@
</node>
<node concept="3clFbS" id="1$LYeHx$mgQ" role="2LFqv$">
<node concept="3clFbJ" id="1$LYeHx$ofe" role="3cqZAp">
<node concept="3clFbC" id="1$LYeHx$t35" role="3clFbw">
<node concept="3cmrfG" id="1$LYeHx$tpG" role="3uHU7w">
<property role="3cmrfH" value="0" />
</node>
<node concept="2OqwBi" id="1$LYeHx$qio" role="3uHU7B">
<node concept="2OqwBi" id="1$LYeHx$ouI" role="2Oq$k0">
<node concept="2GrUjf" id="1$LYeHx$oji" role="2Oq$k0">
<ref role="2Gs0qQ" node="1$LYeHx$mgM" resolve="ctr" />
</node>
<node concept="3Tsc0h" id="1$LYeHx$oDl" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6p0DfM0et2r" resolve="argument" />
</node>
</node>
<node concept="34oBXx" id="1$LYeHx$rSy" role="2OqNvi" />
</node>
</node>
<node concept="3clFbS" id="1$LYeHx$ofg" role="3clFbx">
<node concept="3clFbF" id="1$LYeHx$ttp" role="3cqZAp">
<node concept="2OqwBi" id="1$LYeHx$uyK" role="3clFbG">
@ -2668,6 +2652,22 @@
</node>
</node>
</node>
<node concept="3clFbC" id="1$LYeHx$t35" role="3clFbw">
<node concept="3cmrfG" id="1$LYeHx$tpG" role="3uHU7w">
<property role="3cmrfH" value="0" />
</node>
<node concept="2OqwBi" id="1$LYeHx$qio" role="3uHU7B">
<node concept="2OqwBi" id="1$LYeHx$ouI" role="2Oq$k0">
<node concept="2GrUjf" id="1$LYeHx$oji" role="2Oq$k0">
<ref role="2Gs0qQ" node="1$LYeHx$mgM" resolve="ctr" />
</node>
<node concept="3Tsc0h" id="1$LYeHx$oDl" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:6p0DfM0et2r" resolve="argument" />
</node>
</node>
<node concept="34oBXx" id="1$LYeHx$rSy" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>

View File

@ -27,6 +27,7 @@
<import index="c17a" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
<import index="et5u" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.messages(MPS.Core/)" />
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
<import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
</imports>
<registry>
@ -1036,15 +1037,10 @@
</node>
<node concept="3clFbF" id="tyIfzC2Rgt" role="3cqZAp">
<node concept="37vLTI" id="tyIfzC3hE1" role="3clFbG">
<node concept="2OqwBi" id="tyIfzC2THM" role="37vLTJ">
<node concept="2OqwBi" id="tyIfzC2R_5" role="2Oq$k0">
<node concept="Xjq3P" id="tyIfzC2Rgr" role="2Oq$k0" />
<node concept="2OwXpG" id="tyIfzC2TsK" role="2OqNvi">
<ref role="2Oxat5" node="tyIfzC1bTY" resolve="reporting" />
</node>
</node>
<node concept="2OwXpG" id="tyIfzC3hu9" role="2OqNvi">
<ref role="2Oxat5" node="tyIfzC1HJR" resolve="types" />
<node concept="2OqwBi" id="tyIfzC2R_5" role="37vLTJ">
<node concept="Xjq3P" id="tyIfzC2Rgr" role="2Oq$k0" />
<node concept="2OwXpG" id="7gOEBI$isFr" role="2OqNvi">
<ref role="2Oxat5" node="7gOEBI$iq9Z" resolve="types" />
</node>
</node>
<node concept="2ShNRf" id="tyIfzC3ino" role="37vLTx">
@ -1095,14 +1091,9 @@
<node concept="3clFbS" id="tyIfzC2Bqh" role="3clFbx">
<node concept="3cpWs6" id="3irtEZPzQus" role="3cqZAp">
<node concept="2OqwBi" id="3irtEZPzTa6" role="3cqZAk">
<node concept="2OqwBi" id="3irtEZPzRjI" role="2Oq$k0">
<node concept="Xjq3P" id="3irtEZPzQWJ" role="2Oq$k0" />
<node concept="2OwXpG" id="3irtEZPzSoV" role="2OqNvi">
<ref role="2Oxat5" node="tyIfzC1bTY" resolve="reporting" />
</node>
</node>
<node concept="2OwXpG" id="3irtEZPzTwP" role="2OqNvi">
<ref role="2Oxat5" node="tyIfzC1HJR" resolve="types" />
<node concept="Xjq3P" id="3irtEZPzQWJ" role="2Oq$k0" />
<node concept="2OwXpG" id="7gOEBI$i_K$" role="2OqNvi">
<ref role="2Oxat5" node="7gOEBI$iq9Z" resolve="types" />
</node>
</node>
</node>
@ -1281,26 +1272,16 @@
<ref role="3cqZAo" node="4aLjyB0S4pK" resolve="allTypes" />
</node>
<node concept="3FNE7p" id="4aLjyB0WKkj" role="2OqNvi">
<node concept="2OqwBi" id="4aLjyB0WNiB" role="3FOfgg">
<node concept="37vLTw" id="4aLjyB0WN4C" role="2Oq$k0">
<ref role="3cqZAo" node="tyIfzC1bTY" resolve="reporting" />
</node>
<node concept="2OwXpG" id="4aLjyB0WNtJ" role="2OqNvi">
<ref role="2Oxat5" node="tyIfzC1HJR" resolve="types" />
</node>
<node concept="37vLTw" id="7gOEBI$iv23" role="3FOfgg">
<ref role="3cqZAo" node="7gOEBI$iq9Z" resolve="types" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="tyIfzC28Y9" role="3cqZAp" />
<node concept="3cpWs6" id="tyIfzC1RxE" role="3cqZAp">
<node concept="2OqwBi" id="4aLjyB0SwDn" role="3cqZAk">
<node concept="37vLTw" id="4aLjyB0SvjQ" role="2Oq$k0">
<ref role="3cqZAo" node="tyIfzC1bTY" resolve="reporting" />
</node>
<node concept="2OwXpG" id="4aLjyB0SxGd" role="2OqNvi">
<ref role="2Oxat5" node="tyIfzC1HJR" resolve="types" />
</node>
<node concept="37vLTw" id="7gOEBI$izCv" role="3cqZAk">
<ref role="3cqZAo" node="7gOEBI$iq9Z" resolve="types" />
</node>
</node>
</node>
@ -1356,6 +1337,9 @@
</node>
</node>
</node>
<node concept="37vLTw" id="5fMWD6IorqM" role="37wK5m">
<ref role="3cqZAo" node="5fMWD6Iop7s" resolve="typeCollector" />
</node>
</node>
</node>
</node>
@ -1400,13 +1384,8 @@
<property role="TrG5h" value="getTypes" />
<node concept="3clFbS" id="3o9wrC3D6UT" role="3clF47">
<node concept="3clFbF" id="3o9wrC3Dc9w" role="3cqZAp">
<node concept="2OqwBi" id="3o9wrC3Dcyc" role="3clFbG">
<node concept="37vLTw" id="3o9wrC3DckM" role="2Oq$k0">
<ref role="3cqZAo" node="tyIfzC1bTY" resolve="reporting" />
</node>
<node concept="2OwXpG" id="3o9wrC3DcFG" role="2OqNvi">
<ref role="2Oxat5" node="tyIfzC1HJR" resolve="types" />
</node>
<node concept="37vLTw" id="7gOEBI$i_uJ" role="3clFbG">
<ref role="3cqZAo" node="7gOEBI$iq9Z" resolve="types" />
</node>
</node>
</node>
@ -2028,24 +2007,6 @@
<node concept="312cEu" id="tyIfzC1BlE" role="jymVt">
<property role="2bfB8j" value="true" />
<property role="TrG5h" value="CollectTypes" />
<node concept="312cEg" id="tyIfzC1HJR" role="jymVt">
<property role="TrG5h" value="types" />
<node concept="3rvAFt" id="tyIfzC1GoX" role="1tU5fm">
<node concept="3uibUv" id="tyIfzC1Gu_" role="3rvQeY">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="3Tqbb2" id="tyIfzC1GyB" role="3rvSg0" />
</node>
<node concept="2ShNRf" id="tyIfzC1HUS" role="33vP2m">
<node concept="3rGOSV" id="tyIfzC1IyR" role="2ShVmc">
<node concept="3uibUv" id="tyIfzC1IMD" role="3rHrn6">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="3Tqbb2" id="tyIfzC1IVh" role="3rHtpV" />
</node>
</node>
<node concept="3Tm1VV" id="tyIfzC3g7p" role="1B3o_S" />
</node>
<node concept="1X3_iC" id="3o9wrC3$jn5" role="lGtFl">
<property role="3V$3am" value="member" />
<property role="3V$3ak" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1107461130800/5375687026011219971" />
@ -2079,28 +2040,6 @@
<node concept="10P_77" id="3GEs5q_3o$U" role="3clF45" />
<node concept="3Tm1VV" id="3GEs5q_3o$V" role="1B3o_S" />
<node concept="3clFbS" id="3GEs5q_3o$W" role="3clF47">
<node concept="3clFbF" id="3GEs5q_3o$X" role="3cqZAp">
<node concept="37vLTI" id="3GEs5q_3o$Y" role="3clFbG">
<node concept="37vLTw" id="3GEs5q_3o$Z" role="37vLTx">
<ref role="3cqZAo" node="3GEs5q_3o$S" resolve="type" />
</node>
<node concept="3EllGN" id="3GEs5q_3o_0" role="37vLTJ">
<node concept="2OqwBi" id="3GEs5q_3o_1" role="3ElVtu">
<node concept="2JrnkZ" id="3GEs5q_3o_2" role="2Oq$k0">
<node concept="37vLTw" id="3GEs5q_3o_3" role="2JrQYb">
<ref role="3cqZAo" node="3GEs5q_3o$Q" resolve="target" />
</node>
</node>
<node concept="liA8E" id="3GEs5q_3o_4" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getReference()" resolve="getReference" />
</node>
</node>
<node concept="37vLTw" id="tyIfzC1Ls3" role="3ElQJh">
<ref role="3cqZAo" node="tyIfzC1HJR" resolve="types" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="3GEs5q_3o_6" role="3cqZAp">
<node concept="3clFbT" id="3GEs5q_3o_7" role="3clFbG">
<property role="3clFbU" value="true" />
@ -2199,6 +2138,24 @@
<ref role="3uigEE" node="tyIfzC1BlE" resolve="IncrementalLaunchHelper.CollectTypes" />
</node>
</node>
<node concept="312cEg" id="7gOEBI$iq9Z" role="jymVt">
<property role="TrG5h" value="types" />
<node concept="3rvAFt" id="7gOEBI$iqa0" role="1tU5fm">
<node concept="3uibUv" id="7gOEBI$iqa1" role="3rvQeY">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="3Tqbb2" id="7gOEBI$iqa2" role="3rvSg0" />
</node>
<node concept="2ShNRf" id="7gOEBI$iqa3" role="33vP2m">
<node concept="3rGOSV" id="7gOEBI$iqa4" role="2ShVmc">
<node concept="3uibUv" id="7gOEBI$iqa5" role="3rHrn6">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="3Tqbb2" id="7gOEBI$iqa6" role="3rHtpV" />
</node>
</node>
<node concept="3Tm1VV" id="7gOEBI$iqa7" role="1B3o_S" />
</node>
<node concept="312cEg" id="4aLjyB0YZFj" role="jymVt">
<property role="TrG5h" value="trace" />
<node concept="3Tm6S6" id="4aLjyB0YW7v" role="1B3o_S" />
@ -2220,6 +2177,42 @@
<ref role="3uigEE" to="hano:3GlpCDSxTG7" resolve="ProgramProducer" />
</node>
</node>
<node concept="312cEg" id="5fMWD6Iop7s" role="jymVt">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="5fMWD6HTUVA" role="1tU5fm">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HTUVB" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HTUVC" role="11_B2D" />
</node>
<node concept="3Tm6S6" id="5fMWD6HTQJu" role="1B3o_S" />
<node concept="1bVj0M" id="7gOEBI$jJXV" role="33vP2m">
<node concept="37vLTG" id="7gOEBI$jJXW" role="1bW2Oz">
<property role="TrG5h" value="loc" />
<node concept="2sp9CU" id="7gOEBI$jJXX" role="1tU5fm" />
</node>
<node concept="37vLTG" id="7gOEBI$jJXY" role="1bW2Oz">
<property role="TrG5h" value="type" />
<node concept="3Tqbb2" id="7gOEBI$jJXZ" role="1tU5fm" />
</node>
<node concept="3clFbS" id="7gOEBI$jJY0" role="1bW5cS">
<node concept="3clFbF" id="7gOEBI$jJY1" role="3cqZAp">
<node concept="37vLTI" id="7gOEBI$jJY2" role="3clFbG">
<node concept="37vLTw" id="7gOEBI$jJY3" role="37vLTx">
<ref role="3cqZAo" node="7gOEBI$jJXY" resolve="type" />
</node>
<node concept="3EllGN" id="7gOEBI$jJY4" role="37vLTJ">
<node concept="37vLTw" id="7gOEBI$jJY5" role="3ElVtu">
<ref role="3cqZAo" node="7gOEBI$jJXW" resolve="loc" />
</node>
<node concept="37vLTw" id="7gOEBI$jJY6" role="3ElQJh">
<ref role="3cqZAo" node="7gOEBI$iq9Z" resolve="types" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="312cEg" id="tyIfzC1aZ5" role="jymVt">
<property role="TrG5h" value="evaluator" />
<node concept="3Tm6S6" id="tyIfzC1aXj" role="1B3o_S" />

View File

@ -46,6 +46,7 @@
<import index="1ctc" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.stream(JDK/)" />
<import index="et5u" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.messages(MPS.Core/)" />
<import index="w7la" ref="bbf5c548-7111-4a53-a117-cdefc664cf34/java:jetbrains.mps.logic.reactor.evaluation(jetbrains.mps.logic.reactor/)" />
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
</imports>
<registry>
<language id="8585453e-6bfb-4d80-98de-b16074f1d86c" name="jetbrains.mps.lang.test">
@ -1084,6 +1085,64 @@
</node>
</node>
<node concept="3clFbH" id="6OXbTD_nzVS" role="3cqZAp" />
<node concept="3cpWs8" id="oI9YrxmU9" role="3cqZAp">
<node concept="3cpWsn" id="oI9YrxmUa" role="3cpWs9">
<property role="TrG5h" value="types" />
<node concept="3rvAFt" id="oI9YrxmTV" role="1tU5fm">
<node concept="3uibUv" id="oI9YrxmU0" role="3rvQeY">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="3Tqbb2" id="oI9YrxmU1" role="3rvSg0" />
</node>
<node concept="2ShNRf" id="oI9YrxmUb" role="33vP2m">
<node concept="3rGOSV" id="oI9YrxmUc" role="2ShVmc">
<node concept="3uibUv" id="oI9YrxmUd" role="3rHrn6">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="3Tqbb2" id="oI9YrxmUe" role="3rHtpV" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="7gOEBI$hd0I" role="3cqZAp">
<node concept="3cpWsn" id="7gOEBI$hd0J" role="3cpWs9">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="7gOEBI$hd0G" role="1tU5fm">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="7gOEBI$hd55" role="11_B2D" />
<node concept="3Tqbb2" id="7gOEBI$hdRf" role="11_B2D" />
</node>
<node concept="1bVj0M" id="7gOEBI$hfMl" role="33vP2m">
<node concept="37vLTG" id="7gOEBI$hgbY" role="1bW2Oz">
<property role="TrG5h" value="loc" />
<node concept="2sp9CU" id="7gOEBI$hgB8" role="1tU5fm" />
</node>
<node concept="37vLTG" id="7gOEBI$hhVf" role="1bW2Oz">
<property role="TrG5h" value="type" />
<node concept="3Tqbb2" id="7gOEBI$hin8" role="1tU5fm" />
</node>
<node concept="3clFbS" id="7gOEBI$hfMn" role="1bW5cS">
<node concept="3clFbF" id="3GEs5q_3o$X" role="3cqZAp">
<node concept="37vLTI" id="3GEs5q_3o$Y" role="3clFbG">
<node concept="37vLTw" id="7gOEBI$htul" role="37vLTx">
<ref role="3cqZAo" node="7gOEBI$hhVf" resolve="type" />
</node>
<node concept="3EllGN" id="3GEs5q_3o_0" role="37vLTJ">
<node concept="37vLTw" id="7gOEBI$ht0f" role="3ElVtu">
<ref role="3cqZAo" node="7gOEBI$hgbY" resolve="loc" />
</node>
<node concept="37vLTw" id="3GEs5q_3o_5" role="3ElQJh">
<ref role="3cqZAo" node="oI9YrxmUa" resolve="types" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="7gOEBI$huPi" role="3cqZAp" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="7gOEBI$hqVJ" role="3cqZAp" />
<node concept="3cpWs8" id="6$7vuu2ugt2" role="3cqZAp">
<node concept="3cpWsn" id="6$7vuu2ugt3" role="3cpWs9">
<property role="TrG5h" value="tplApp" />
@ -1129,6 +1188,9 @@
</node>
</node>
</node>
<node concept="37vLTw" id="7gOEBI$hjpf" role="37wK5m">
<ref role="3cqZAo" node="7gOEBI$hd0J" resolve="typeCollector" />
</node>
</node>
</node>
</node>
@ -1143,25 +1205,6 @@
</node>
</node>
</node>
<node concept="3cpWs8" id="oI9YrxmU9" role="3cqZAp">
<node concept="3cpWsn" id="oI9YrxmUa" role="3cpWs9">
<property role="TrG5h" value="types" />
<node concept="3rvAFt" id="oI9YrxmTV" role="1tU5fm">
<node concept="3uibUv" id="oI9YrxmU0" role="3rvQeY">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="3Tqbb2" id="oI9YrxmU1" role="3rvSg0" />
</node>
<node concept="2ShNRf" id="oI9YrxmUb" role="33vP2m">
<node concept="3rGOSV" id="oI9YrxmUc" role="2ShVmc">
<node concept="3uibUv" id="oI9YrxmUd" role="3rHrn6">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
<node concept="3Tqbb2" id="oI9YrxmUe" role="3rHtpV" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="oI9Yrxmcl" role="3cqZAp" />
<node concept="3cpWs8" id="3GEs5q_3o$J" role="3cqZAp">
<node concept="3cpWsn" id="3GEs5q_3o$K" role="3cpWs9">
@ -1190,28 +1233,6 @@
<node concept="10P_77" id="3GEs5q_3o$U" role="3clF45" />
<node concept="3Tm1VV" id="3GEs5q_3o$V" role="1B3o_S" />
<node concept="3clFbS" id="3GEs5q_3o$W" role="3clF47">
<node concept="3clFbF" id="3GEs5q_3o$X" role="3cqZAp">
<node concept="37vLTI" id="3GEs5q_3o$Y" role="3clFbG">
<node concept="37vLTw" id="3GEs5q_3o$Z" role="37vLTx">
<ref role="3cqZAo" node="3GEs5q_3o$S" resolve="type" />
</node>
<node concept="3EllGN" id="3GEs5q_3o_0" role="37vLTJ">
<node concept="2OqwBi" id="3GEs5q_3o_1" role="3ElVtu">
<node concept="2JrnkZ" id="3GEs5q_3o_2" role="2Oq$k0">
<node concept="37vLTw" id="3GEs5q_3o_3" role="2JrQYb">
<ref role="3cqZAo" node="3GEs5q_3o$Q" resolve="target" />
</node>
</node>
<node concept="liA8E" id="3GEs5q_3o_4" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getReference()" resolve="getReference" />
</node>
</node>
<node concept="37vLTw" id="3GEs5q_3o_5" role="3ElQJh">
<ref role="3cqZAo" node="oI9YrxmUa" resolve="types" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="3GEs5q_3o_6" role="3cqZAp">
<node concept="3clFbT" id="3GEs5q_3o_7" role="3clFbG">
<property role="3clFbU" value="true" />

View File

@ -58,6 +58,7 @@
<import index="o35r" ref="r:76281d8a-46ce-405f-8cfc-287ee8597b54(jetbrains.mps.coderules.ui.plugin)" />
<import index="fqlx" ref="r:2cc226a9-8a78-4010-b962-823343fd28ff(jetbrains.mps.lang.coderules.aspect)" />
<import index="31yc" ref="r:0c18ff61-1cb9-4ff0-a899-c949ad03f97c(jetbrains.mps.coderules.plugin)" />
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
</imports>
<registry>
<language id="28f9e497-3b42-4291-aeba-0a1039153ab1" name="jetbrains.mps.lang.plugin">
@ -325,6 +326,7 @@
</language>
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
<concept id="5045161044515397667" name="jetbrains.mps.lang.smodel.structure.Node_PointerOperation" flags="ng" index="iZEcu" />
<concept id="7400021826771268254" name="jetbrains.mps.lang.smodel.structure.SNodePointerType" flags="ig" index="2sp9CU" />
<concept id="1143234257716" name="jetbrains.mps.lang.smodel.structure.Node_GetModelOperation" flags="nn" index="I4A8Y" />
<concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS" />
<concept id="1145404486709" name="jetbrains.mps.lang.smodel.structure.SemanticDowncastExpression" flags="nn" index="2JrnkZ">
@ -1343,7 +1345,7 @@
</node>
<node concept="312cEu" id="1pPth$lC1vN">
<property role="2bfB8j" value="false" />
<property role="TrG5h" value="HighlightingTypesStep" />
<property role="TrG5h" value="HighlightingStep" />
<property role="3GE5qa" value="launch.step" />
<node concept="2tJIrI" id="52a_GfIQ21d" role="jymVt" />
<node concept="3clFbW" id="1pPth$lGTrm" role="jymVt">
@ -1464,33 +1466,6 @@
</node>
</node>
</node>
<node concept="3clFbF" id="78H58of3j3m" role="3cqZAp">
<node concept="37vLTI" id="78H58of3jJJ" role="3clFbG">
<node concept="2OqwBi" id="78H58of3kZg" role="37vLTx">
<node concept="37vLTw" id="78H58of3kle" role="2Oq$k0">
<ref role="3cqZAo" node="78H58of3fK7" resolve="task" />
</node>
<node concept="liA8E" id="78H58of3lAi" role="2OqNvi">
<ref role="37wK5l" to="o35r:78H58oeTnR1" resolve="withMessages" />
<node concept="2OqwBi" id="7eK3DxvnYrT" role="37wK5m">
<node concept="37vLTw" id="7eK3DxvnWDA" role="2Oq$k0">
<ref role="3cqZAo" node="5lxnBcU09rm" resolve="inEff" />
</node>
<node concept="liA8E" id="3bpBM3PuuHl" role="2OqNvi">
<ref role="37wK5l" to="1yqb:2daneBOX8cN" resolve="getValue" />
<node concept="10M0yZ" id="3bpBM3Puy7n" role="37wK5m">
<ref role="3cqZAo" to="tj24:2daneBPzfwl" resolve="LOCAL_TYPES" />
<ref role="1PxDUh" to="tj24:NKt6yn81z$" resolve="TypecheckingStep" />
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="78H58of3j3k" role="37vLTJ">
<ref role="3cqZAo" node="78H58of3fK7" resolve="task" />
</node>
</node>
</node>
<node concept="3clFbF" id="1FOQehx4b_Y" role="3cqZAp">
<node concept="37vLTI" id="1FOQehx4b_Z" role="3clFbG">
<node concept="2OqwBi" id="1FOQehx4bA0" role="37vLTx">
@ -2658,6 +2633,27 @@
</node>
</node>
</node>
<node concept="3cpWs8" id="5fMWD6IsJg9" role="3cqZAp">
<node concept="3cpWsn" id="5fMWD6IsJga" role="3cpWs9">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="5fMWD6IsLbG" role="1tU5fm">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6IsM1V" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6IsMNN" role="11_B2D" />
</node>
<node concept="1bVj0M" id="5fMWD6IsJgb" role="33vP2m">
<node concept="3clFbS" id="5fMWD6IsJgc" role="1bW5cS" />
<node concept="37vLTG" id="5fMWD6IsJgd" role="1bW2Oz">
<property role="TrG5h" value="loc" />
<node concept="2sp9CU" id="5fMWD6IsJge" role="1tU5fm" />
</node>
<node concept="37vLTG" id="5fMWD6IsJgf" role="1bW2Oz">
<property role="TrG5h" value="type" />
<node concept="3Tqbb2" id="5fMWD6IsJgg" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1GKZK$AcBWw" role="3cqZAp">
<node concept="2OqwBi" id="1GKZK$AcDtv" role="3clFbG">
<node concept="37vLTw" id="1GKZK$AcBWu" role="2Oq$k0">
@ -2693,6 +2689,9 @@
<ref role="3cqZAo" to="tj24:4t7Xo7inNvw" resolve="TYPECHECK" />
<ref role="1PxDUh" to="tj24:4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
<node concept="37vLTw" id="5fMWD6IsJgh" role="37wK5m">
<ref role="3cqZAo" node="5fMWD6IsJga" resolve="typeCollector" />
</node>
</node>
</node>
</node>
@ -3096,6 +3095,27 @@
</node>
</node>
</node>
<node concept="3cpWs8" id="5fMWD6IsEOy" role="3cqZAp">
<node concept="3cpWsn" id="5fMWD6IsEOz" role="3cpWs9">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="5fMWD6IsGyo" role="1tU5fm">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6IsHoM" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6IsHQP" role="11_B2D" />
</node>
<node concept="1bVj0M" id="5fMWD6IsEO$" role="33vP2m">
<node concept="37vLTG" id="5fMWD6IsEO_" role="1bW2Oz">
<property role="TrG5h" value="loc" />
<node concept="2sp9CU" id="5fMWD6IsEOA" role="1tU5fm" />
</node>
<node concept="37vLTG" id="5fMWD6IsEOB" role="1bW2Oz">
<property role="TrG5h" value="type" />
<node concept="3Tqbb2" id="5fMWD6IsEOC" role="1tU5fm" />
</node>
<node concept="3clFbS" id="5fMWD6IsEOD" role="1bW5cS" />
</node>
</node>
</node>
<node concept="3clFbF" id="7WKNeR8TcXy" role="3cqZAp">
<node concept="2OqwBi" id="7WKNeR8TcXz" role="3clFbG">
<node concept="37vLTw" id="7WKNeR8TcX$" role="2Oq$k0">
@ -3130,6 +3150,9 @@
<node concept="37vLTw" id="7WKNeR9foS9" role="37wK5m">
<ref role="3cqZAo" node="7WKNeR9fm7b" resolve="queryKind" />
</node>
<node concept="37vLTw" id="5fMWD6IsEOE" role="37wK5m">
<ref role="3cqZAo" node="5fMWD6IsEOz" resolve="typeCollector" />
</node>
</node>
</node>
</node>
@ -3194,6 +3217,32 @@
</node>
</node>
</node>
<node concept="3clFbF" id="2U4rQ68z06q" role="3cqZAp">
<node concept="2OqwBi" id="2U4rQ68z1BS" role="3clFbG">
<node concept="37vLTw" id="2U4rQ68z06o" role="2Oq$k0">
<ref role="3cqZAo" node="7WKNeR8TcXs" resolve="steps" />
</node>
<node concept="TSZUe" id="2U4rQ68z2Qc" role="2OqNvi">
<node concept="2ShNRf" id="2U4rQ68z2XA" role="25WWJ7">
<node concept="1pGfFk" id="2U4rQ68zt8i" role="2ShVmc">
<ref role="37wK5l" to="tj24:HOeeeUbp1O" resolve="ComputeBaselineTimeStep" />
<node concept="37vLTw" id="2U4rQ68ztjO" role="37wK5m">
<ref role="3cqZAo" node="7WKNeR8SQxI" resolve="repository" />
</node>
<node concept="2OqwBi" id="2U4rQ68ztqp" role="37wK5m">
<node concept="2OqwBi" id="2U4rQ68ztqq" role="2Oq$k0">
<node concept="37vLTw" id="2U4rQ68ztqr" role="2Oq$k0">
<ref role="3cqZAo" node="6hqFpWnfpcc" resolve="nodes" />
</node>
<node concept="1uHKPH" id="2U4rQ68ztqs" role="2OqNvi" />
</node>
<node concept="2Rxl7S" id="2U4rQ68ztqt" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7WKNeR8TcYx" role="3cqZAp">
<node concept="2OqwBi" id="7WKNeR8TcYy" role="3clFbG">
<node concept="37vLTw" id="7WKNeR8TcYz" role="2Oq$k0">
@ -3202,7 +3251,7 @@
<node concept="TSZUe" id="7WKNeR8TcY$" role="2OqNvi">
<node concept="2ShNRf" id="7WKNeR8TcY_" role="25WWJ7">
<node concept="1pGfFk" id="7WKNeR8TcYA" role="2ShVmc">
<ref role="37wK5l" node="1pPth$lGTrm" resolve="HighlightingTypesStep" />
<ref role="37wK5l" node="1pPth$lGTrm" resolve="HighlightingStep" />
<node concept="37vLTw" id="7WKNeR8TjKr" role="37wK5m">
<ref role="3cqZAo" node="6hqFpWnfwwm" resolve="editorComponent" />
</node>

View File

@ -3972,19 +3972,22 @@
</node>
</node>
<node concept="3clFbH" id="2daneBPQqH3" role="3cqZAp" />
<node concept="3clFbF" id="2daneBPQrYu" role="3cqZAp">
<node concept="10QFUN" id="2daneBPQtAv" role="3clFbG">
<node concept="2ShNRf" id="2daneBPQtAt" role="10QFUP">
<node concept="1pGfFk" id="3bpBM3PNkNK" role="2ShVmc">
<ref role="37wK5l" to="1yqb:3bpBM3PNk9l" resolve="Effect.NullEffect" />
<node concept="Xl_RD" id="3bpBM3PNpqJ" role="37wK5m">
<property role="Xl_RC" value="compute baseline time" />
<node concept="3clFbF" id="5fMWD6Ivuul" role="3cqZAp">
<node concept="2OqwBi" id="5fMWD6IvuSF" role="3clFbG">
<node concept="37vLTw" id="5fMWD6Ivuuj" role="2Oq$k0">
<ref role="3cqZAo" node="HOeeeUbrCB" resolve="inEff" />
</node>
<node concept="liA8E" id="5fMWD6Ivvf8" role="2OqNvi">
<ref role="37wK5l" to="1yqb:2daneBOX0cV" resolve="combine" />
<node concept="2ShNRf" id="5fMWD6Ivvwt" role="37wK5m">
<node concept="1pGfFk" id="5fMWD6Ivvwu" role="2ShVmc">
<ref role="37wK5l" to="1yqb:3bpBM3PNk9l" resolve="Effect.NullEffect" />
<node concept="Xl_RD" id="5fMWD6Ivvwv" role="37wK5m">
<property role="Xl_RC" value="compute baseline time" />
</node>
</node>
</node>
</node>
<node concept="3uibUv" id="2daneBPQu_N" role="10QFUM">
<ref role="3uigEE" to="1yqb:2daneBOWXQd" resolve="Effect" />
</node>
</node>
</node>
</node>
@ -4438,80 +4441,6 @@
</node>
<node concept="3clFbS" id="6BMBBPCVfIW" role="1bW5cS">
<node concept="3clFbH" id="6BMBBPCVvW_" role="3cqZAp" />
<node concept="3cpWs8" id="6BMBBPCVun6" role="3cqZAp">
<node concept="3cpWsn" id="6BMBBPCVun7" role="3cpWs9">
<property role="TrG5h" value="updateCachedTypesIndex" />
<node concept="3uibUv" id="6BMBBPCVun8" role="1tU5fm">
<ref role="3uigEE" node="6QH_LDtcxgf" resolve="TypesIndex" />
</node>
</node>
</node>
<node concept="3clFbJ" id="6BMBBPCVun9" role="3cqZAp">
<node concept="3clFbS" id="6BMBBPCVuna" role="3clFbx">
<node concept="1QHqEK" id="6BMBBPCVunb" role="3cqZAp">
<node concept="1QHqEC" id="6BMBBPCVunc" role="1QHqEI">
<node concept="3clFbS" id="6BMBBPCVund" role="1bW5cS">
<node concept="3clFbF" id="6BMBBPCVune" role="3cqZAp">
<node concept="37vLTI" id="6BMBBPCVunf" role="3clFbG">
<node concept="2OqwBi" id="6BMBBPCVung" role="37vLTx">
<node concept="2YIFZM" id="6BMBBPCVunh" role="2Oq$k0">
<ref role="1Pybhc" node="4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="37wK5l" node="4Z$O9mrQIG1" resolve="get" />
<node concept="37vLTw" id="6BMBBPCVuni" role="37wK5m">
<ref role="3cqZAo" to="1yqb:443LGHBSt7P" resolve="repository" />
</node>
</node>
<node concept="liA8E" id="6BMBBPCVunj" role="2OqNvi">
<ref role="37wK5l" node="6QH_LDtbsGz" resolve="updateCachedTypesIndex" />
<node concept="37vLTw" id="6BMBBPCVunk" role="37wK5m">
<ref role="3cqZAo" node="7eK3Dxvlq8f" resolve="unitRef" />
</node>
<node concept="1bVj0M" id="6BMBBPCVunl" role="37wK5m">
<node concept="37vLTG" id="6BMBBPCVunm" role="1bW2Oz">
<property role="TrG5h" value="index" />
<node concept="3uibUv" id="6BMBBPCVunn" role="1tU5fm">
<ref role="3uigEE" node="6QH_LDtcxgf" resolve="TypesIndex" />
</node>
</node>
<node concept="3clFbS" id="6BMBBPCVuno" role="1bW5cS">
<node concept="3clFbF" id="6BMBBPCVunp" role="3cqZAp">
<node concept="2OqwBi" id="6BMBBPCVunq" role="3clFbG">
<node concept="37vLTw" id="6BMBBPCVunr" role="2Oq$k0">
<ref role="3cqZAo" node="6BMBBPCVunm" resolve="index" />
</node>
<node concept="liA8E" id="6BMBBPCVuns" role="2OqNvi">
<ref role="37wK5l" node="6$gg4kA3UdB" resolve="putAllTypes" />
<node concept="37vLTw" id="6BMBBPCVunt" role="37wK5m">
<ref role="3cqZAo" node="7lt0LtQ_Xx_" resolve="typeNodes" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="6BMBBPCVunu" role="3cqZAp" />
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="6BMBBPCVunv" role="37vLTJ">
<ref role="3cqZAo" node="6BMBBPCVun7" resolve="updateCachedTypesIndex" />
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="6BMBBPCVunw" role="ukAjM">
<ref role="3cqZAo" to="1yqb:443LGHBSt7P" resolve="repository" />
</node>
</node>
</node>
<node concept="3y3z36" id="6BMBBPCVunx" role="3clFbw">
<node concept="10Nm6u" id="6BMBBPCVuny" role="3uHU7w" />
<node concept="37vLTw" id="6BMBBPCVunz" role="3uHU7B">
<ref role="3cqZAo" node="7eK3Dxvlq8f" resolve="unitRef" />
</node>
</node>
</node>
<node concept="3clFbH" id="6BMBBPCVun$" role="3cqZAp" />
<node concept="3clFbF" id="2j1FRbx6kaC" role="3cqZAp">
<node concept="2OqwBi" id="2j1FRbx6kWs" role="3clFbG">
<node concept="37vLTw" id="2j1FRbx6kaA" role="2Oq$k0">
@ -4525,17 +4454,6 @@
<node concept="Xl_RD" id="2j1FRbx6sBv" role="37wK5m">
<property role="Xl_RC" value="typechecking" />
</node>
<node concept="2OqwBi" id="2j1FRbx6y8W" role="37wK5m">
<node concept="37vLTw" id="2j1FRbx6xhK" role="2Oq$k0">
<ref role="3cqZAo" node="2daneBP0TEV" resolve="TYPE_INDEX" />
</node>
<node concept="liA8E" id="2j1FRbx6$2I" role="2OqNvi">
<ref role="37wK5l" to="1yqb:6BMBBPCRIcz" resolve="is" />
<node concept="37vLTw" id="2j1FRbx6_yL" role="37wK5m">
<ref role="3cqZAo" node="6BMBBPCVun7" resolve="updateCachedTypesIndex" />
</node>
</node>
</node>
<node concept="2OqwBi" id="2j1FRbx6DwX" role="37wK5m">
<node concept="37vLTw" id="2j1FRbx6BZp" role="2Oq$k0">
<ref role="3cqZAo" node="1G9Y_Qv7rZx" resolve="TRACE_EVENTS" />
@ -4547,17 +4465,6 @@
</node>
</node>
</node>
<node concept="2OqwBi" id="2j1FRbx6NgH" role="37wK5m">
<node concept="37vLTw" id="2j1FRbx6LzA" role="2Oq$k0">
<ref role="3cqZAo" node="2daneBPzfwl" resolve="LOCAL_TYPES" />
</node>
<node concept="liA8E" id="2j1FRbx6ORm" role="2OqNvi">
<ref role="37wK5l" to="1yqb:6BMBBPCRIcz" resolve="is" />
<node concept="37vLTw" id="2j1FRbx6Qt3" role="37wK5m">
<ref role="3cqZAo" node="7lt0LtQ_Xx_" resolve="typeNodes" />
</node>
</node>
</node>
<node concept="2OqwBi" id="2j1FRbx6TMI" role="37wK5m">
<node concept="37vLTw" id="2j1FRbx6ScD" role="2Oq$k0">
<ref role="3cqZAo" node="2daneBP_Jiy" resolve="REPORT_ITEMS" />
@ -5585,10 +5492,6 @@
<node concept="3clFbF" id="7eK3Dxvm4c8" role="3cqZAp">
<node concept="1rXfSq" id="7eK3Dxvm4ca" role="3clFbG">
<ref role="37wK5l" node="3IIf9O_qVvl" resolve="calcTypeIndex" />
<node concept="10M0yZ" id="7eK3Dxvm4cb" role="37wK5m">
<ref role="3cqZAo" node="4t7Xo7inNvw" resolve="TYPECHECK" />
<ref role="1PxDUh" node="4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
<node concept="37vLTw" id="3KN3A4vE03L" role="37wK5m">
<ref role="3cqZAo" node="1FOQehxdZUm" resolve="root" />
</node>
@ -5725,10 +5628,6 @@
</node>
<node concept="1rXfSq" id="3IIf9O_tnnc" role="37vLTx">
<ref role="37wK5l" node="3IIf9O_qVvl" resolve="calcTypeIndex" />
<node concept="10M0yZ" id="2Mi2iz0OEzQ" role="37wK5m">
<ref role="3cqZAo" node="4t7Xo7inNvw" resolve="TYPECHECK" />
<ref role="1PxDUh" node="4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
<node concept="37vLTw" id="7eK3DxvmJEq" role="37wK5m">
<ref role="3cqZAo" node="3IIf9O_tnmu" resolve="containingRoot" />
</node>
@ -6381,6 +6280,58 @@
</node>
</node>
<node concept="3clFbH" id="2qsG4AwJN4P" role="3cqZAp" />
<node concept="3cpWs8" id="5fMWD6HHSBi" role="3cqZAp">
<node concept="3cpWsn" id="5fMWD6HHSBj" role="3cpWs9">
<property role="TrG5h" value="node2type" />
<node concept="3rvAFt" id="5fMWD6HHSud" role="1tU5fm">
<node concept="2sp9CU" id="5fMWD6HHSui" role="3rvQeY" />
<node concept="3Tqbb2" id="5fMWD6HHSuj" role="3rvSg0" />
</node>
<node concept="2ShNRf" id="5fMWD6HHSBk" role="33vP2m">
<node concept="3rGOSV" id="5fMWD6HHSBl" role="2ShVmc">
<node concept="2sp9CU" id="5fMWD6HHSBm" role="3rHrn6" />
<node concept="3Tqbb2" id="5fMWD6HHSBn" role="3rHtpV" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="5fMWD6HPS5c" role="3cqZAp">
<node concept="3cpWsn" id="5fMWD6HPS5d" role="3cpWs9">
<property role="TrG5h" value="updateFun" />
<node concept="1bVj0M" id="5fMWD6HPS5e" role="33vP2m">
<node concept="37vLTG" id="5fMWD6HPS5f" role="1bW2Oz">
<property role="TrG5h" value="loc" />
<node concept="2sp9CU" id="5fMWD6HPS5g" role="1tU5fm" />
</node>
<node concept="37vLTG" id="5fMWD6HPS5h" role="1bW2Oz">
<property role="TrG5h" value="type" />
<node concept="3Tqbb2" id="5fMWD6HPS5i" role="1tU5fm" />
</node>
<node concept="3clFbS" id="5fMWD6HPS5j" role="1bW5cS">
<node concept="3clFbF" id="5fMWD6HPS5k" role="3cqZAp">
<node concept="37vLTI" id="5fMWD6HPS5l" role="3clFbG">
<node concept="37vLTw" id="5fMWD6HPS5m" role="37vLTx">
<ref role="3cqZAo" node="5fMWD6HPS5h" resolve="type" />
</node>
<node concept="3EllGN" id="5fMWD6HPS5n" role="37vLTJ">
<node concept="37vLTw" id="5fMWD6HPS5o" role="3ElVtu">
<ref role="3cqZAo" node="5fMWD6HPS5f" resolve="loc" />
</node>
<node concept="37vLTw" id="5fMWD6HPS5p" role="3ElQJh">
<ref role="3cqZAo" node="5fMWD6HHSBj" resolve="node2type" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3uibUv" id="5fMWD6HQXA4" role="1tU5fm">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HQXLK" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HQXUK" role="11_B2D" />
</node>
</node>
</node>
<node concept="3cpWs8" id="1FOQehxoMr3" role="3cqZAp">
<node concept="3cpWsn" id="1FOQehxoMr4" role="3cpWs9">
<property role="TrG5h" value="helpers" />
@ -6403,6 +6354,9 @@
<ref role="3cqZAo" node="4t7Xo7inNvw" resolve="TYPECHECK" />
<ref role="1PxDUh" node="4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
<node concept="37vLTw" id="5fMWD6HQ2Ui" role="37wK5m">
<ref role="3cqZAo" node="5fMWD6HPS5d" resolve="updateFun" />
</node>
</node>
</node>
</node>
@ -6435,45 +6389,17 @@
</node>
</node>
</node>
<node concept="3clFbH" id="2mhJggj$AgX" role="3cqZAp" />
<node concept="3cpWs8" id="2daneBPAYoH" role="3cqZAp">
<node concept="3cpWsn" id="2daneBPAYoI" role="3cpWs9">
<property role="TrG5h" value="localType" />
<node concept="3Tqbb2" id="2daneBPAYmD" role="1tU5fm" />
<node concept="3EllGN" id="2daneBPAYoJ" role="33vP2m">
<node concept="2OqwBi" id="2daneBPAYoK" role="3ElVtu">
<node concept="37vLTw" id="2daneBPBss4" role="2Oq$k0">
<ref role="3cqZAo" node="1FOQehxnAn0" resolve="node" />
</node>
<node concept="iZEcu" id="2daneBPAYoM" role="2OqNvi" />
</node>
<node concept="2OqwBi" id="2daneBPAYoN" role="3ElQJh">
<node concept="37vLTw" id="2daneBPAYoO" role="2Oq$k0">
<ref role="3cqZAo" node="2daneBP_A$J" resolve="effect" />
</node>
<node concept="liA8E" id="2daneBPAYoP" role="2OqNvi">
<ref role="37wK5l" to="1yqb:2daneBOX8cN" resolve="getValue" />
<node concept="10M0yZ" id="2daneBPAYoQ" role="37wK5m">
<ref role="3cqZAo" node="2daneBPzfwl" resolve="LOCAL_TYPES" />
<ref role="1PxDUh" node="NKt6yn81z$" resolve="TypecheckingStep" />
</node>
</node>
<node concept="3clFbH" id="7gOEBI$fWek" role="3cqZAp" />
<node concept="3cpWs6" id="2daneBPBeID" role="3cqZAp">
<node concept="3EllGN" id="7gOEBI$fODA" role="3cqZAk">
<node concept="2OqwBi" id="7gOEBI$fODB" role="3ElVtu">
<node concept="37vLTw" id="7gOEBI$fODC" role="2Oq$k0">
<ref role="3cqZAo" node="1FOQehxnAn0" resolve="node" />
</node>
<node concept="iZEcu" id="7gOEBI$fODD" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbJ" id="2daneBPBeIB" role="3cqZAp">
<node concept="3clFbS" id="2daneBPBeIC" role="3clFbx">
<node concept="3cpWs6" id="2daneBPBeID" role="3cqZAp">
<node concept="37vLTw" id="2daneBPBeIE" role="3cqZAk">
<ref role="3cqZAo" node="2daneBPAYoI" resolve="localType" />
</node>
</node>
</node>
<node concept="3y3z36" id="2daneBPBeIF" role="3clFbw">
<node concept="10Nm6u" id="2daneBPBeIG" role="3uHU7w" />
<node concept="37vLTw" id="2daneBPBeIH" role="3uHU7B">
<ref role="3cqZAo" node="2daneBPAYoI" resolve="localType" />
<node concept="37vLTw" id="7gOEBI$fODE" role="3ElQJh">
<ref role="3cqZAo" node="5fMWD6HHSBj" resolve="node2type" />
</node>
</node>
</node>
@ -6591,17 +6517,63 @@
<node concept="3uibUv" id="7eK3DxvlX1p" role="3clF45">
<ref role="3uigEE" node="6QH_LDtcxgf" resolve="TypesIndex" />
</node>
<node concept="37vLTG" id="3IIf9O_r1EB" role="3clF46">
<property role="TrG5h" value="queryKind" />
<node concept="3uibUv" id="2Mi2iz0OC5L" role="1tU5fm">
<ref role="3uigEE" node="4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
</node>
<node concept="37vLTG" id="7eK3DxvmvIz" role="3clF46">
<property role="TrG5h" value="unit" />
<node concept="3Tqbb2" id="3KN3A4vE1RG" role="1tU5fm" />
</node>
<node concept="3clFbS" id="3IIf9O_qVt_" role="3clF47">
<node concept="3cpWs8" id="5fMWD6HIaqV" role="3cqZAp">
<node concept="3cpWsn" id="5fMWD6HIaqW" role="3cpWs9">
<property role="TrG5h" value="node2type" />
<node concept="3rvAFt" id="5fMWD6HIajM" role="1tU5fm">
<node concept="2sp9CU" id="5fMWD6HIajS" role="3rvQeY" />
<node concept="3Tqbb2" id="5fMWD6HIajR" role="3rvSg0" />
</node>
<node concept="2ShNRf" id="5fMWD6HIaqX" role="33vP2m">
<node concept="3rGOSV" id="5fMWD6HIaqY" role="2ShVmc">
<node concept="2sp9CU" id="5fMWD6HIaqZ" role="3rHrn6" />
<node concept="3Tqbb2" id="5fMWD6HIar0" role="3rHtpV" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="5fMWD6HQ3FP" role="3cqZAp">
<node concept="3cpWsn" id="5fMWD6HQ3FQ" role="3cpWs9">
<property role="TrG5h" value="updateFun" />
<node concept="1bVj0M" id="5fMWD6HQ3FV" role="33vP2m">
<node concept="37vLTG" id="5fMWD6HQ3FW" role="1bW2Oz">
<property role="TrG5h" value="loc" />
<node concept="2sp9CU" id="5fMWD6HQ3FX" role="1tU5fm" />
</node>
<node concept="37vLTG" id="5fMWD6HQ3FY" role="1bW2Oz">
<property role="TrG5h" value="type" />
<node concept="3Tqbb2" id="5fMWD6HQ3FZ" role="1tU5fm" />
</node>
<node concept="3clFbS" id="5fMWD6HQ3G0" role="1bW5cS">
<node concept="3clFbF" id="5fMWD6HQ3G1" role="3cqZAp">
<node concept="37vLTI" id="5fMWD6HQ3G2" role="3clFbG">
<node concept="37vLTw" id="5fMWD6HQ3G3" role="37vLTx">
<ref role="3cqZAo" node="5fMWD6HQ3FY" resolve="type" />
</node>
<node concept="3EllGN" id="5fMWD6HQ3G4" role="37vLTJ">
<node concept="37vLTw" id="5fMWD6HQ3G5" role="3ElVtu">
<ref role="3cqZAo" node="5fMWD6HQ3FW" resolve="loc" />
</node>
<node concept="37vLTw" id="5fMWD6HQ3G6" role="3ElQJh">
<ref role="3cqZAo" node="5fMWD6HIaqW" resolve="node2type" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3uibUv" id="5fMWD6HTeJn" role="1tU5fm">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HTeJo" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HTeJp" role="11_B2D" />
</node>
</node>
</node>
<node concept="3cpWs8" id="3IIf9O_qVtZ" role="3cqZAp">
<node concept="3cpWsn" id="3IIf9O_qVu0" role="3cpWs9">
<property role="TrG5h" value="helpers" />
@ -6615,8 +6587,12 @@
<node concept="37vLTw" id="3KN3A4vGkWL" role="37wK5m">
<ref role="3cqZAo" node="7eK3DxvmvIz" resolve="unit" />
</node>
<node concept="37vLTw" id="1FOQehxnBe_" role="37wK5m">
<ref role="3cqZAo" node="3IIf9O_r1EB" resolve="queryKind" />
<node concept="10M0yZ" id="5fMWD6HI34t" role="37wK5m">
<ref role="3cqZAo" node="4t7Xo7inNvw" resolve="TYPECHECK" />
<ref role="1PxDUh" node="4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
<node concept="37vLTw" id="5fMWD6HQ953" role="37wK5m">
<ref role="3cqZAo" node="5fMWD6HQ3FQ" resolve="updateFun" />
</node>
</node>
</node>
@ -6683,6 +6659,60 @@
<ref role="3cqZAo" node="3IIf9O_qVu0" resolve="helpers" />
</node>
</node>
<node concept="3clFbH" id="5fMWD6ItCbk" role="3cqZAp" />
<node concept="1QHqEK" id="5fMWD6ItHXr" role="3cqZAp">
<node concept="1QHqEC" id="5fMWD6ItHXt" role="1QHqEI">
<node concept="3clFbS" id="5fMWD6ItHXv" role="1bW5cS">
<node concept="3clFbF" id="5fMWD6ItSBi" role="3cqZAp">
<node concept="2OqwBi" id="5fMWD6ItYjf" role="3clFbG">
<node concept="2YIFZM" id="5fMWD6ItTdx" role="2Oq$k0">
<ref role="37wK5l" node="4Z$O9mrQIG1" resolve="get" />
<ref role="1Pybhc" node="4Z$O9mrQIzY" resolve="TypesIndexCache" />
<node concept="37vLTw" id="5fMWD6ItWHv" role="37wK5m">
<ref role="3cqZAo" node="3IIf9O_u8qV" resolve="repository" />
</node>
</node>
<node concept="liA8E" id="5fMWD6Iu0gq" role="2OqNvi">
<ref role="37wK5l" node="6QH_LDtbsGz" resolve="updateCachedTypesIndex" />
<node concept="2OqwBi" id="5fMWD6Iu0H3" role="37wK5m">
<node concept="37vLTw" id="5fMWD6Iu0tw" role="2Oq$k0">
<ref role="3cqZAo" node="7eK3DxvmvIz" resolve="unit" />
</node>
<node concept="iZEcu" id="5fMWD6Iu285" role="2OqNvi" />
</node>
<node concept="1bVj0M" id="5fMWD6Iu2qW" role="37wK5m">
<node concept="37vLTG" id="5fMWD6Iu2v1" role="1bW2Oz">
<property role="TrG5h" value="index" />
<node concept="3uibUv" id="5fMWD6Iu2FB" role="1tU5fm">
<ref role="3uigEE" node="6QH_LDtcxgf" resolve="TypesIndex" />
</node>
</node>
<node concept="3clFbS" id="5fMWD6Iu2qY" role="1bW5cS">
<node concept="3clFbF" id="5fMWD6Iu37A" role="3cqZAp">
<node concept="2OqwBi" id="5fMWD6Iu3wa" role="3clFbG">
<node concept="37vLTw" id="5fMWD6Iu3h9" role="2Oq$k0">
<ref role="3cqZAo" node="5fMWD6Iu2v1" resolve="index" />
</node>
<node concept="liA8E" id="5fMWD6Iu3Hb" role="2OqNvi">
<ref role="37wK5l" node="6$gg4kA3UdB" resolve="putAllTypes" />
<node concept="37vLTw" id="5fMWD6Iu40r" role="37wK5m">
<ref role="3cqZAo" node="5fMWD6HIaqW" resolve="node2type" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5fMWD6Iu4bW" role="3cqZAp" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="5fMWD6ItNql" role="ukAjM">
<ref role="3cqZAo" node="3IIf9O_u8qV" resolve="repository" />
</node>
</node>
<node concept="3clFbH" id="3KN3A4vKut2" role="3cqZAp" />
<node concept="3cpWs6" id="7eK3Dxvm3IS" role="3cqZAp">
<node concept="2OqwBi" id="3KN3A4vL4ur" role="3cqZAk">