Extend typechecking query TYPECHECK with a parameter to report types.

Reporting of calculated types is to be more explicit.
The not-so-obvious _type_.set() operation is to be phased out.
This commit is contained in:
Fedor Isakov 2019-10-10 15:47:09 +02:00
parent be81c982f1
commit f8dcf127db
4 changed files with 583 additions and 161 deletions

View File

@ -9,18 +9,20 @@
<use id="760a0a8c-eabb-4521-8bfd-65db761a9ba3" name="jetbrains.mps.baseLanguage.logging" version="-1" />
<use id="35320f26-77cb-4c55-be9f-a97a27770af1" name="jetbrains.mps.logic" version="4" />
<use id="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462" name="jetbrains.mps.lang.typechecking" version="-1" />
<engage id="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462" name="jetbrains.mps.lang.typechecking" />
<devkit ref="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
</languages>
<imports>
<import index="1g4i" ref="r:102178da-67ba-49f6-ba73-eb29fa352fe7(jetbrains.mps.coderules.typechecking)" />
<import index="qulx" ref="r:ec0979fb-ae37-4823-9eaa-8550d9f5c6fd(jetbrains.mps.typechecking.testlang.structure)" />
<import index="tj24" ref="r:0fbbb63a-fd15-46e1-8136-78049f6d6e63(jetbrains.mps.coderules.typechecking.service)" />
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
</imports>
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1153422305557" name="jetbrains.mps.baseLanguage.structure.LessThanOrEqualsExpression" flags="nn" index="2dkUwp" />
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
<child id="1197027771414" name="operand" index="2Oq$k0" />
<child id="1197027833540" name="operation" index="2OqNvi" />
@ -68,6 +70,7 @@
</concept>
<concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
<reference id="1107535924139" name="classifier" index="3uigEE" />
<child id="1109201940907" name="parameter" index="11_B2D" />
</concept>
<concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
<child id="1081773367579" name="rightExpression" index="3uHU7w" />
@ -131,6 +134,8 @@
<concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
<reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
</concept>
<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="2396822768958367367" name="jetbrains.mps.lang.smodel.structure.AbstractTypeCastExpression" flags="nn" index="$5XWr">
<child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
<child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
@ -155,14 +160,6 @@
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
<language id="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462" name="jetbrains.mps.lang.typechecking">
<concept id="6958395084019752" name="jetbrains.mps.lang.typechecking.structure.SNodeSetTypeOperation" flags="ng" index="2ra22R">
<child id="6958395084020241" name="typeExpr" index="2ra2ae" />
</concept>
</language>
<language id="cba985fe-1e96-4f16-9f8d-b07434405d4f" name="jetbrains.mps.lang.smodel.types">
<concept id="7345257067587627589" name="jetbrains.mps.lang.smodel.types.structure.SNodeTypeOperation" flags="ng" index="2W$R8B" />
</language>
<language id="c4803b19-6d89-4a3b-bf82-390769514add" name="jetbrains.mps.lang.coderules">
<concept id="8456919074560454386" name="jetbrains.mps.lang.coderules.structure.ParameterContainer" flags="ng" index="0eUR_">
<child id="8456919074560454898" name="parameter" index="0eVf_" />
@ -236,7 +233,9 @@
<concept id="5372587443968979218" name="jetbrains.mps.lang.coderules.structure.ExpressionConstraint" flags="ng" index="3wWvb2">
<child id="5372587443968983820" name="expression" index="3wWo3s" />
</concept>
<concept id="1878265754077060950" name="jetbrains.mps.lang.coderules.structure.ConstraintParameterDeclaration" flags="ng" index="1zAUYm" />
<concept id="1878265754077060950" name="jetbrains.mps.lang.coderules.structure.ConstraintParameterDeclaration" flags="ng" index="1zAUYm">
<child id="6036655413802463897" name="dataType" index="3gTf24" />
</concept>
<concept id="7368070394769089081" name="jetbrains.mps.lang.coderules.structure.RuleInputDeclaration" flags="ng" index="3A20r5" />
<concept id="7368070394769139970" name="jetbrains.mps.lang.coderules.structure.RuleInputReference" flags="ng" index="3A2sRY">
<reference id="7368070394769213644" name="declaration" index="3A2yKK" />
@ -287,6 +286,14 @@
<ref role="2YbDB9" node="7mB3viLbCp8" resolve="Typeof" />
<node concept="3AqmO8" id="7lt0LtPOZVl" role="8PkJo">
<property role="TrG5h" value="recover" />
<node concept="1zAUYm" id="5fMWD6IydH3" role="1zAUyy">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="5fMWD6IydH8" role="3gTf24">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6IydH9" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6IydHa" role="11_B2D" />
</node>
</node>
</node>
<node concept="3AqmO8" id="7lt0LtPOZWJ" role="8PkJo">
<property role="TrG5h" value="typeNode" />
@ -303,6 +310,16 @@
<node concept="1nLNNL" id="7lt0LtPOZW0" role="3cqZAp">
<node concept="1nLNMm" id="7lt0LtPOZW1" role="1nLNNK">
<node concept="0eUR_" id="7lt0LtPOZW5" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6IydHR" role="0eVf_">
<node concept="aZer4" id="5fMWD6IydHS" role="3XD1gS">
<property role="TrG5h" value="TypeCollector" />
</node>
<node concept="3uibUv" id="5fMWD6IydIz" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6IydI$" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6IydI_" role="11_B2D" />
</node>
</node>
<node concept="3NuqgR" id="7lt0LtPOZW7" role="0eVf_">
<node concept="aZer4" id="7lt0LtPOZW8" role="3XD1gS">
<property role="TrG5h" value="T" />
@ -320,34 +337,42 @@
</node>
<node concept="3Aq9E8" id="7lt0LtPP11l" role="1nLNMd">
<node concept="3I6sU6" id="7lt0LtPP11m" role="3Ip0Jz">
<node concept="3I6s7M" id="7mB3viLbDsi" role="3I6sU7">
<node concept="3wWvb2" id="7mB3viLbDsg" role="3I6s78">
<node concept="2OqwBi" id="7mB3viLbDYy" role="3wWo3s">
<node concept="2OqwBi" id="7mB3viLbDzy" role="2Oq$k0">
<node concept="3A2sRY" id="7mB3viLbDsv" role="2Oq$k0">
<ref role="3A2yKK" node="7lt0LtPOZVo" resolve="bc" />
<node concept="3I6s7M" id="5fMWD6IydMw" role="3I6sU7">
<node concept="3wWvb2" id="5fMWD6IydMs" role="3I6s78">
<node concept="2OqwBi" id="5fMWD6IydWI" role="3wWo3s">
<node concept="1TmgYN" id="5fMWD6IydMP" role="2Oq$k0">
<node concept="1nq8_$" id="5fMWD6IydN0" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6IydMY" role="1nq8_t">
<ref role="a7OzE" node="5fMWD6IydHS" resolve="TypeCollector" />
</node>
</node>
<node concept="2W$R8B" id="7mB3viLbDHU" role="2OqNvi" />
</node>
<node concept="2ra22R" id="7mB3viLbE7i" role="2OqNvi">
<node concept="2pJPEk" id="7mB3viLbEmP" role="2ra2ae">
<node concept="2pJPED" id="7mB3viLbEmQ" role="2pJPEn">
<node concept="liA8E" id="5fMWD6Iyeel" role="2OqNvi">
<ref role="37wK5l" to="82uw:~BiConsumer.accept(java.lang.Object,java.lang.Object)" resolve="accept" />
<node concept="2OqwBi" id="5fMWD6Iyeqh" role="37wK5m">
<node concept="3A2sRY" id="5fMWD6Iyeg4" role="2Oq$k0">
<ref role="3A2yKK" node="7lt0LtPOZVo" resolve="bc" />
</node>
<node concept="iZEcu" id="5fMWD6Iye_2" role="2OqNvi" />
</node>
<node concept="2pJPEk" id="5fMWD6IyeVN" role="37wK5m">
<node concept="2pJPED" id="5fMWD6IyeVO" role="2pJPEn">
<ref role="2pJxaS" to="qulx:7mB3viLbCL0" resolve="Type" />
<node concept="2pJxcG" id="7mB3viLbEmR" role="2pJxcM">
<node concept="2pJxcG" id="5fMWD6IyeVP" role="2pJxcM">
<ref role="2pJxcJ" to="qulx:7mB3viLbCL1" resolve="name" />
<node concept="1TmgYN" id="7mB3viLdI8l" role="28ntcv">
<node concept="1nq8_$" id="7mB3viLdI8Z" role="1Tms7$">
<node concept="a7P8L" id="7mB3viLdI8X" role="1nq8_t">
<node concept="1TmgYN" id="5fMWD6IyeVQ" role="28ntcv">
<node concept="1nq8_$" id="5fMWD6IyeVR" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6IyeVS" role="1nq8_t">
<ref role="a7OzE" node="7mB3viLdI2x" resolve="Name" />
</node>
</node>
</node>
</node>
<node concept="2pJxcG" id="7mB3viLhVif" role="2pJxcM">
<node concept="2pJxcG" id="5fMWD6IyeVT" role="2pJxcM">
<ref role="2pJxcJ" to="qulx:7mB3viLggsO" resolve="val" />
<node concept="1TmgYN" id="7mB3viLhVjF" role="28ntcv">
<node concept="1nq8_$" id="7mB3viLhVjG" role="1Tms7$">
<node concept="a7P8L" id="7mB3viLhVjH" role="1nq8_t">
<node concept="1TmgYN" id="5fMWD6IyeVU" role="28ntcv">
<node concept="1nq8_$" id="5fMWD6IyeVV" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6IyeVW" role="1nq8_t">
<ref role="a7OzE" node="7lt0LtPP29U" resolve="Val" />
</node>
</node>
@ -367,6 +392,9 @@
<node concept="3I6s7M" id="7mB3viLbLDf" role="3I6sU7">
<node concept="3Aqt3T" id="7mB3viLbLDe" role="3I6s78">
<ref role="3AqCNq" node="7lt0LtPOZVl" resolve="recover" />
<node concept="a7P8L" id="5fMWD6IydKx" role="3AunhB">
<ref role="a7OzE" node="5fMWD6IydHS" resolve="TypeCollector" />
</node>
</node>
</node>
</node>
@ -673,6 +701,14 @@
</node>
<node concept="92CTh" id="6OXbTD$fzih">
<property role="TrG5h" value="TypecheckQuery" />
<node concept="2_cOLj" id="5fMWD6IydE6" role="2_cLD1">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="5fMWD6HQY7C" role="2_9F96">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HQY7D" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HQY7E" role="11_B2D" />
</node>
</node>
<node concept="2bWyPT" id="6OXbTD$fzli" role="92CTm">
<property role="TrG5h" value="main" />
<node concept="3clFbS" id="6OXbTD$fzlj" role="fHCRw">
@ -683,6 +719,11 @@
<node concept="3I6s7M" id="7mB3viLbExU" role="3I6sU7">
<node concept="3Aqt3T" id="7mB3viLbExT" role="3I6s78">
<ref role="3AqCNq" node="7lt0LtPOZVl" resolve="recover" />
<node concept="aZ4PW" id="5fMWD6IydEn" role="3AunhB">
<node concept="2_cIyK" id="5fMWD6IydEt" role="aZ4eD">
<ref role="2_cIwb" node="5fMWD6IydE6" resolve="typeCollector" />
</node>
</node>
</node>
</node>
</node>

View File

@ -7,15 +7,17 @@
<use id="cba985fe-1e96-4f16-9f8d-b07434405d4f" name="jetbrains.mps.lang.smodel.types" version="0" />
<use id="35320f26-77cb-4c55-be9f-a97a27770af1" name="jetbrains.mps.logic" version="4" />
<use id="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462" name="jetbrains.mps.lang.typechecking" version="0" />
<engage id="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462" name="jetbrains.mps.lang.typechecking" />
<devkit ref="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
</languages>
<imports>
<import index="jfgh" ref="r:2003997c-f9a6-418f-99d4-03e1285a3e13(samples.fitch.structure)" />
<import index="1g4i" ref="r:102178da-67ba-49f6-ba73-eb29fa352fe7(jetbrains.mps.coderules.typechecking)" />
<import index="tj24" ref="r:0fbbb63a-fd15-46e1-8136-78049f6d6e63(jetbrains.mps.coderules.typechecking.service)" />
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
</imports>
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
<child id="1197027771414" name="operand" index="2Oq$k0" />
<child id="1197027833540" name="operation" index="2OqNvi" />
@ -32,6 +34,14 @@
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
<child id="1068581517665" name="statement" index="3cqZAp" />
</concept>
<concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
<child id="1068499141038" name="actualArgument" index="37wK5m" />
</concept>
<concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
<reference id="1107535924139" name="classifier" index="3uigEE" />
<child id="1109201940907" name="parameter" index="11_B2D" />
</concept>
<concept id="6329021646629104957" name="jetbrains.mps.baseLanguage.structure.TextCommentPart" flags="nn" index="3SKdUq">
<property id="6329021646629104958" name="text" index="3SKdUp" />
</concept>
@ -49,6 +59,12 @@
<child id="6399471711045617306" name="dataType" index="3vLBG7" />
<child id="3063948360254832884" name="declaration" index="3XD1gS" />
</concept>
<concept id="8829335963593820278" name="jetbrains.mps.logic.structure.LogicalVariable" flags="ng" index="a7P8L">
<reference id="8829335963593822893" name="declaration" index="a7OzE" />
</concept>
<concept id="8829335963591530299" name="jetbrains.mps.logic.structure.ExpressionLogicalVariable" flags="ng" index="aZ4PW">
<child id="8829335963591530990" name="expression" index="aZ4eD" />
</concept>
<concept id="8829335963591572611" name="jetbrains.mps.logic.structure.LogicalVariableDeclaration" flags="ng" index="aZer4" />
<concept id="861509610434243104" name="jetbrains.mps.logic.structure.DataFormTable" flags="ng" index="ns1xd">
<child id="861509610434243105" name="contents" index="ns1xc" />
@ -57,8 +73,16 @@
<child id="861509610434243084" name="template" index="ns1xx" />
</concept>
<concept id="861509610434276450" name="jetbrains.mps.logic.structure.DataFormTemplate" flags="ng" index="nspSf" />
<concept id="4780620083400582599" name="jetbrains.mps.logic.structure.LogicalItemExpression" flags="ng" index="1nq8_$">
<child id="4780620083400582654" name="logical" index="1nq8_t" />
</concept>
<concept id="2455719244613908503" name="jetbrains.mps.logic.structure.ValueOfExpression" flags="ng" index="1TmgYN">
<child id="2455719244613924416" name="logical" index="1Tms7$" />
</concept>
</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="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2" />
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
@ -69,20 +93,13 @@
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
<language id="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462" name="jetbrains.mps.lang.typechecking">
<concept id="6958395084019752" name="jetbrains.mps.lang.typechecking.structure.SNodeSetTypeOperation" flags="ng" index="2ra22R">
<child id="6958395084020241" name="typeExpr" index="2ra2ae" />
</concept>
</language>
<language id="cba985fe-1e96-4f16-9f8d-b07434405d4f" name="jetbrains.mps.lang.smodel.types">
<concept id="7345257067587627589" name="jetbrains.mps.lang.smodel.types.structure.SNodeTypeOperation" flags="ng" index="2W$R8B" />
</language>
<language id="c4803b19-6d89-4a3b-bf82-390769514add" name="jetbrains.mps.lang.coderules">
<concept id="8456919074560454386" name="jetbrains.mps.lang.coderules.structure.ParameterContainer" flags="ng" index="0eUR_">
<child id="8456919074560454898" name="parameter" index="0eVf_" />
</concept>
<concept id="7871500063866331595" name="jetbrains.mps.lang.coderules.structure.Query" flags="ng" index="92CTh">
<child id="7871500063866331596" name="queryStage" index="92CTm" />
<child id="3026409000515988658" name="parameter" index="2_cLD1" />
<child id="3026409000513569515" name="queryKind" index="2_lZgo" />
</concept>
<concept id="9035818301008609703" name="jetbrains.mps.lang.coderules.structure.QueryTemplate" flags="ng" index="2bWyPT">
@ -92,6 +109,12 @@
<reference id="6691972578451990912" name="applicableConcept" index="2t_S0q" />
<child id="6691972578451986151" name="input" index="2t_VXX" />
</concept>
<concept id="3026409000516001347" name="jetbrains.mps.lang.coderules.structure.QueryParameterReference" flags="ng" index="2_cIyK">
<reference id="3026409000516001528" name="declaration" index="2_cIwb" />
</concept>
<concept id="3026409000515975840" name="jetbrains.mps.lang.coderules.structure.QueryParameterDeclaration" flags="ng" index="2_cOLj">
<child id="3026409000516797621" name="type" index="2_9F96" />
</concept>
<concept id="8335224865066015764" name="jetbrains.mps.lang.coderules.structure.RulesList" flags="ng" index="AVZre">
<child id="1980609059185345194" name="constraint" index="8PkJo" />
<child id="3575255234175157601" name="template" index="1nK1Vg" />
@ -118,7 +141,9 @@
<concept id="1878265754076919072" name="jetbrains.mps.lang.coderules.structure.Comment" flags="ng" index="1zAsnw">
<child id="5974055334837370567" name="part" index="27qylF" />
</concept>
<concept id="1878265754077060950" name="jetbrains.mps.lang.coderules.structure.ConstraintParameterDeclaration" flags="ng" index="1zAUYm" />
<concept id="1878265754077060950" name="jetbrains.mps.lang.coderules.structure.ConstraintParameterDeclaration" flags="ng" index="1zAUYm">
<child id="6036655413802463897" name="dataType" index="3gTf24" />
</concept>
<concept id="7368070394769089081" name="jetbrains.mps.lang.coderules.structure.RuleInputDeclaration" flags="ng" index="3A20r5" />
<concept id="7368070394769139970" name="jetbrains.mps.lang.coderules.structure.RuleInputReference" flags="ng" index="3A2sRY">
<reference id="7368070394769213644" name="declaration" index="3A2yKK" />
@ -156,6 +181,14 @@
</node>
<node concept="3AqmO8" id="2aBGSFge6lJ" role="8PkJo">
<property role="TrG5h" value="checkAll" />
<node concept="1zAUYm" id="5fMWD6Iy9zp" role="1zAUyy">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="5fMWD6Iy9zw" role="3gTf24">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6Iy9zx" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6Iy9zy" role="11_B2D" />
</node>
</node>
</node>
<node concept="3AqmO8" id="2YqrT$P6Q6Q" role="8PkJo">
<property role="TrG5h" value="check" />
@ -185,6 +218,9 @@
<node concept="3I6s7M" id="2YqrT$P6QmQ" role="3I6sU7">
<node concept="3Aqt3T" id="2YqrT$P6QmP" role="3I6s78">
<ref role="3AqCNq" node="2aBGSFge6lJ" resolve="checkAll" />
<node concept="a7P8L" id="5fMWD6Iy9_f" role="3AunhB">
<ref role="a7OzE" node="5fMWD6Iy9zH" resolve="TypeCollector" />
</node>
</node>
</node>
</node>
@ -203,6 +239,18 @@
</node>
</node>
</node>
<node concept="0eUR_" id="5fMWD6Iy9zE" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6Iy9zG" role="0eVf_">
<node concept="aZer4" id="5fMWD6Iy9zH" role="3XD1gS">
<property role="TrG5h" value="TypeCollector" />
</node>
<node concept="3uibUv" id="5fMWD6Iy9zN" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6Iy9zO" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6Iy9zP" role="11_B2D" />
</node>
</node>
</node>
</node>
</node>
</node>
@ -224,6 +272,9 @@
<node concept="3I6s7M" id="2YqrT$P7S$b" role="3I6sU7">
<node concept="3Aqt3T" id="2YqrT$P7S$c" role="3I6s78">
<ref role="3AqCNq" node="2aBGSFge6lJ" resolve="checkAll" />
<node concept="a7P8L" id="5fMWD6Iy9AR" role="3AunhB">
<ref role="a7OzE" node="5fMWD6Iy9Ai" resolve="TypeCollector" />
</node>
</node>
</node>
</node>
@ -242,6 +293,18 @@
</node>
</node>
</node>
<node concept="0eUR_" id="5fMWD6Iy9Af" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6Iy9Ah" role="0eVf_">
<node concept="aZer4" id="5fMWD6Iy9Ai" role="3XD1gS">
<property role="TrG5h" value="TypeCollector" />
</node>
<node concept="3uibUv" id="5fMWD6Iy9Aj" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6Iy9Ak" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6Iy9Al" role="11_B2D" />
</node>
</node>
</node>
</node>
</node>
</node>
@ -343,6 +406,16 @@
<node concept="1nLNNL" id="6$MtiK8GZF1" role="3cqZAp">
<node concept="1nLNMm" id="6$MtiK8GZF2" role="1nLNNK">
<node concept="0eUR_" id="3dsgZciwajt" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6Iy9CF" role="0eVf_">
<node concept="aZer4" id="5fMWD6Iy9CG" role="3XD1gS">
<property role="TrG5h" value="TypeCollector" />
</node>
<node concept="3uibUv" id="5fMWD6Iy9CH" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6Iy9CI" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6Iy9CJ" role="11_B2D" />
</node>
</node>
<node concept="3NuqgR" id="2YqrT$P7SuF" role="0eVf_">
<node concept="aZer4" id="2YqrT$P7SuG" role="3XD1gS">
<property role="TrG5h" value="Node" />
@ -353,6 +426,14 @@
<node concept="3Aq93q" id="2YqrT$P7Su3" role="1nLNMb">
<property role="3ArMco" value="true" />
<node concept="3I6sU6" id="2YqrT$P7Su4" role="3Ip0Jz">
<node concept="3I6s7M" id="5fMWD6Iy9Dv" role="3I6sU7">
<node concept="3Aqt3T" id="5fMWD6Iy9Dt" role="3I6s78">
<ref role="3AqCNq" node="2aBGSFge6lJ" resolve="checkAll" />
<node concept="a7P8L" id="5fMWD6Iy9DA" role="3AunhB">
<ref role="a7OzE" node="5fMWD6Iy9CG" resolve="TypeCollector" />
</node>
</node>
</node>
<node concept="3I6s7M" id="2YqrT$P7Su8" role="3I6sU7">
<node concept="3Aqt3T" id="2YqrT$P7Su7" role="3I6s78">
<ref role="3AqCNq" node="2YqrT$P7tud" resolve="valid" />
@ -381,18 +462,26 @@
</node>
<node concept="3Aq9E8" id="2YqrT$P7Suu" role="1nLNMd">
<node concept="3I6sU6" id="2YqrT$P7Suv" role="3Ip0Jz">
<node concept="3I6s7M" id="3dsgZcixXN$" role="3I6sU7">
<node concept="3wWvb2" id="3dsgZcixXNy" role="3I6s78">
<node concept="2OqwBi" id="3dsgZcixYR8" role="3wWo3s">
<node concept="2OqwBi" id="3dsgZcixYhL" role="2Oq$k0">
<node concept="3A2sRY" id="3dsgZcixYaI" role="2Oq$k0">
<ref role="3A2yKK" node="2YqrT$P7StR" resolve="goal" />
<node concept="3I6s7M" id="5fMWD6Iy9EN" role="3I6sU7">
<node concept="3wWvb2" id="5fMWD6Iy9EJ" role="3I6s78">
<node concept="2OqwBi" id="5fMWD6Iy9ON" role="3wWo3s">
<node concept="1TmgYN" id="5fMWD6Iy9F0" role="2Oq$k0">
<node concept="1nq8_$" id="5fMWD6Iy9Fb" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6Iy9F9" role="1nq8_t">
<ref role="a7OzE" node="5fMWD6Iy9CG" resolve="TypeCollector" />
</node>
</node>
<node concept="2W$R8B" id="3dsgZcixYAw" role="2OqNvi" />
</node>
<node concept="2ra22R" id="3dsgZcixZ06" role="2OqNvi">
<node concept="2pJPEk" id="3dsgZcixZmW" role="2ra2ae">
<node concept="2pJPED" id="3dsgZcixZmX" role="2pJPEn">
<node concept="liA8E" id="5fMWD6Iya6q" role="2OqNvi">
<ref role="37wK5l" to="82uw:~BiConsumer.accept(java.lang.Object,java.lang.Object)" resolve="accept" />
<node concept="2OqwBi" id="5fMWD6Iyajv" role="37wK5m">
<node concept="3A2sRY" id="5fMWD6Iyaa8" role="2Oq$k0">
<ref role="3A2yKK" node="2YqrT$P7StR" resolve="goal" />
</node>
<node concept="iZEcu" id="5fMWD6Iyawc" role="2OqNvi" />
</node>
<node concept="2pJPEk" id="5fMWD6Iya$T" role="37wK5m">
<node concept="2pJPED" id="5fMWD6Iya$U" role="2pJPEn">
<ref role="2pJxaS" to="jfgh:2aBGSFge6pw" resolve="Ok" />
</node>
</node>
@ -456,6 +545,14 @@
</node>
<node concept="92CTh" id="2rdxkKxrUlk">
<property role="TrG5h" value="Typecheck" />
<node concept="2_cOLj" id="5fMWD6Iy9vK" role="2_cLD1">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="5fMWD6HQY7C" role="2_9F96">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HQY7D" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HQY7E" role="11_B2D" />
</node>
</node>
<node concept="2bWyPT" id="2rdxkKxrXzd" role="92CTm">
<property role="TrG5h" value="checkAll" />
<node concept="3clFbS" id="2rdxkKxrXze" role="fHCRw">
@ -466,6 +563,11 @@
<node concept="3I6s7M" id="2rdxkKxrXAl" role="3I6sU7">
<node concept="3Aqt3T" id="2rdxkKxrXAk" role="3I6s78">
<ref role="3AqCNq" node="2aBGSFge6lJ" resolve="checkAll" />
<node concept="aZ4PW" id="5fMWD6IydCl" role="3AunhB">
<node concept="2_cIyK" id="5fMWD6IydCt" role="aZ4eD">
<ref role="2_cIwb" node="5fMWD6Iy9vK" resolve="typeCollector" />
</node>
</node>
</node>
</node>
</node>

View File

@ -12,6 +12,7 @@
<use id="35320f26-77cb-4c55-be9f-a97a27770af1" name="jetbrains.mps.logic" version="4" />
<use id="cba985fe-1e96-4f16-9f8d-b07434405d4f" name="jetbrains.mps.lang.smodel.types" version="-1" />
<use id="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462" name="jetbrains.mps.lang.typechecking" version="-1" />
<engage id="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462" name="jetbrains.mps.lang.typechecking" />
<devkit ref="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
</languages>
<imports>
@ -21,6 +22,7 @@
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" />
<import index="1g4i" ref="r:102178da-67ba-49f6-ba73-eb29fa352fe7(jetbrains.mps.coderules.typechecking)" />
<import index="tj24" ref="r:0fbbb63a-fd15-46e1-8136-78049f6d6e63(jetbrains.mps.coderules.typechecking.service)" />
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
</imports>
<registry>
@ -408,6 +410,7 @@
</concept>
<concept id="7871500063866331595" name="jetbrains.mps.lang.coderules.structure.Query" flags="ng" index="92CTh">
<child id="7871500063866331596" name="queryStage" index="92CTm" />
<child id="3026409000515988658" name="parameter" index="2_cLD1" />
<child id="3026409000513569515" name="queryKind" index="2_lZgo" />
</concept>
<concept id="1980609059169917031" name="jetbrains.mps.lang.coderules.structure.CopyItem" flags="ng" index="9KH4l">
@ -426,6 +429,12 @@
<reference id="6691972578451990912" name="applicableConcept" index="2t_S0q" />
<child id="6691972578451986151" name="input" index="2t_VXX" />
</concept>
<concept id="3026409000516001347" name="jetbrains.mps.lang.coderules.structure.QueryParameterReference" flags="ng" index="2_cIyK">
<reference id="3026409000516001528" name="declaration" index="2_cIwb" />
</concept>
<concept id="3026409000515975840" name="jetbrains.mps.lang.coderules.structure.QueryParameterDeclaration" flags="ng" index="2_cOLj">
<child id="3026409000516797621" name="type" index="2_9F96" />
</concept>
<concept id="8335224865066015764" name="jetbrains.mps.lang.coderules.structure.RulesList" flags="ng" index="AVZre">
<reference id="3541122455446356437" name="extends" index="2YbDB9" />
<child id="1980609059185345194" name="constraint" index="8PkJo" />
@ -495,7 +504,9 @@
<concept id="5372587443968979218" name="jetbrains.mps.lang.coderules.structure.ExpressionConstraint" flags="ng" index="3wWvb2">
<child id="5372587443968983820" name="expression" index="3wWo3s" />
</concept>
<concept id="1878265754077060950" name="jetbrains.mps.lang.coderules.structure.ConstraintParameterDeclaration" flags="ng" index="1zAUYm" />
<concept id="1878265754077060950" name="jetbrains.mps.lang.coderules.structure.ConstraintParameterDeclaration" flags="ng" index="1zAUYm">
<child id="6036655413802463897" name="dataType" index="3gTf24" />
</concept>
<concept id="7368070394769089081" name="jetbrains.mps.lang.coderules.structure.RuleInputDeclaration" flags="ng" index="3A20r5" />
<concept id="7368070394769139970" name="jetbrains.mps.lang.coderules.structure.RuleInputReference" flags="ng" index="3A2sRY">
<reference id="7368070394769213644" name="declaration" index="3A2yKK" />
@ -4709,6 +4720,14 @@
</node>
<node concept="3AqmO8" id="4dPZ2m2jAgt" role="8PkJo">
<property role="TrG5h" value="recoverAll" />
<node concept="1zAUYm" id="5fMWD6IxD54" role="1zAUyy">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="5fMWD6IxD59" role="3gTf24">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6IxD5a" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6IxD5b" role="11_B2D" />
</node>
</node>
</node>
<node concept="3AqmO8" id="JqEP$8kz$w" role="8PkJo">
<property role="TrG5h" value="varTypeName" />
@ -4796,6 +4815,9 @@
<node concept="3I6s7M" id="47tET_WlKqI" role="3I6sU7">
<node concept="3Aqt3T" id="47tET_WlKqH" role="3I6s78">
<ref role="3AqCNq" node="4dPZ2m2jAgt" resolve="recoverAll" />
<node concept="a7P8L" id="5fMWD6IxD7b" role="3AunhB">
<ref role="a7OzE" node="5fMWD6IxD5m" resolve="TypeCollector" />
</node>
</node>
</node>
</node>
@ -4809,6 +4831,18 @@
</node>
</node>
</node>
<node concept="0eUR_" id="5fMWD6IxD5j" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6IxD5l" role="0eVf_">
<node concept="aZer4" id="5fMWD6IxD5m" role="3XD1gS">
<property role="TrG5h" value="TypeCollector" />
</node>
<node concept="3uibUv" id="5fMWD6IxD5s" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6IxD5t" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6IxD5u" role="11_B2D" />
</node>
</node>
</node>
</node>
</node>
</node>
@ -4843,6 +4877,16 @@
<node concept="1nLNNL" id="6$MtiK8IMV1" role="3cqZAp">
<node concept="1nLNMm" id="6$MtiK8IMV2" role="1nLNNK">
<node concept="0eUR_" id="6K6UrSyHVK0" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6IxD8a" role="0eVf_">
<node concept="aZer4" id="5fMWD6IxD8b" role="3XD1gS">
<property role="TrG5h" value="TypeCollector" />
</node>
<node concept="3uibUv" id="5fMWD6IxD8p" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6IxD8q" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6IxD8r" role="11_B2D" />
</node>
</node>
<node concept="3NuqgR" id="4dPZ2m2jBnp" role="0eVf_">
<node concept="aZer4" id="4dPZ2m2jBnq" role="3XD1gS">
<property role="TrG5h" value="Node" />
@ -4869,6 +4913,9 @@
<node concept="3I6s7M" id="PoGdiA6hZf" role="3I6sU7">
<node concept="3Aqt3T" id="PoGdiA6hZe" role="3I6s78">
<ref role="3AqCNq" node="4dPZ2m2jAgt" resolve="recoverAll" />
<node concept="a7P8L" id="5fMWD6IxDau" role="3AunhB">
<ref role="a7OzE" node="5fMWD6IxD8b" resolve="TypeCollector" />
</node>
</node>
</node>
<node concept="3I6s7M" id="PoGdiA6hZC" role="3I6sU7">
@ -4908,19 +4955,27 @@
</node>
</node>
</node>
<node concept="3I6s7M" id="6K6UrSyIcK6" role="3I6sU7">
<node concept="3wWvb2" id="6K6UrSyIcK4" role="3I6s78">
<node concept="2OqwBi" id="6K6UrSyIdrk" role="3wWo3s">
<node concept="2OqwBi" id="6K6UrSyIcRl" role="2Oq$k0">
<node concept="3A2sRY" id="6K6UrSyIcKn" role="2Oq$k0">
<ref role="3A2yKK" node="4dPZ2m2jBj9" resolve="tpbl" />
<node concept="3I6s7M" id="5fMWD6IxDdh" role="3I6sU7">
<node concept="3wWvb2" id="5fMWD6IxDdd" role="3I6s78">
<node concept="2OqwBi" id="5fMWD6IxDnG" role="3wWo3s">
<node concept="1TmgYN" id="5fMWD6IxDdT" role="2Oq$k0">
<node concept="1nq8_$" id="5fMWD6IxDe4" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6IxDe2" role="1nq8_t">
<ref role="a7OzE" node="5fMWD6IxD8b" resolve="TypeCollector" />
</node>
</node>
<node concept="2W$R8B" id="6K6UrSyIdb6" role="2OqNvi" />
</node>
<node concept="2ra22R" id="6K6UrSyId$b" role="2OqNvi">
<node concept="1TmgYN" id="6K6UrSyIdMO" role="2ra2ae">
<node concept="1nq8_$" id="6K6UrSyIdNb" role="1Tms7$">
<node concept="a7P8L" id="6K6UrSyIdN9" role="1nq8_t">
<node concept="liA8E" id="5fMWD6IxDFs" role="2OqNvi">
<ref role="37wK5l" to="82uw:~BiConsumer.accept(java.lang.Object,java.lang.Object)" resolve="accept" />
<node concept="2OqwBi" id="5fMWD6IxEd7" role="37wK5m">
<node concept="3A2sRY" id="5fMWD6IxE1O" role="2Oq$k0">
<ref role="3A2yKK" node="4dPZ2m2jBj9" resolve="tpbl" />
</node>
<node concept="iZEcu" id="5fMWD6IxEqZ" role="2OqNvi" />
</node>
<node concept="1TmgYN" id="5fMWD6IxDJe" role="37wK5m">
<node concept="1nq8_$" id="5fMWD6IxDL7" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6IxDTm" role="1nq8_t">
<ref role="a7OzE" node="4dPZ2m2jBnq" resolve="Node" />
</node>
</node>
@ -8734,6 +8789,14 @@
</node>
<node concept="92CTh" id="5Eb7bDWO4vA">
<property role="TrG5h" value="Typecheck" />
<node concept="2_cOLj" id="5fMWD6HFjux" role="2_cLD1">
<property role="TrG5h" value="typesUpdateFun" />
<node concept="3uibUv" id="5fMWD6HQY7C" role="2_9F96">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HQY7D" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HQY7E" role="11_B2D" />
</node>
</node>
<node concept="2bWyPT" id="5Eb7bDWO9gE" role="92CTm">
<property role="TrG5h" value="recover" />
<node concept="3clFbS" id="5Eb7bDWO9gF" role="fHCRw">
@ -8744,6 +8807,11 @@
<node concept="3I6s7M" id="5Eb7bDWO9lH" role="3I6sU7">
<node concept="3Aqt3T" id="5Eb7bDWO9lG" role="3I6s78">
<ref role="3AqCNq" node="4dPZ2m2jAgt" resolve="recoverAll" />
<node concept="aZ4PW" id="5fMWD6HQq56" role="3AunhB">
<node concept="2_cIyK" id="5fMWD6HQq5e" role="aZ4eD">
<ref role="2_cIwb" node="5fMWD6HFjux" resolve="typesUpdateFun" />
</node>
</node>
</node>
</node>
</node>

View File

@ -28,13 +28,10 @@
<import index="w7la" ref="bbf5c548-7111-4a53-a117-cdefc664cf34/java:jetbrains.mps.logic.reactor.evaluation(jetbrains.mps.logic.reactor/)" />
<import index="cxk7" ref="r:daa544a7-0a5c-49c0-a54c-4c2a5b4868aa(jetbrains.mps.logic.predicate)" />
<import index="hano" ref="r:2b43b673-12f9-49ea-8e43-d0c7a401586a(jetbrains.mps.lang.coderules.eval)" />
<import index="1g4i" ref="r:102178da-67ba-49f6-ba73-eb29fa352fe7(jetbrains.mps.coderules.typechecking)" />
<import index="9x2e" ref="r:0730b0d1-7e2f-4982-aac3-8069c5060a9c(jetbrains.mps.lang.typesystem2.reporting)" />
<import index="2gg1" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.errors(MPS.Core/)" />
<import index="zdap" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.util.text(MPS.IDEA/)" />
<import index="tj24" ref="r:0fbbb63a-fd15-46e1-8136-78049f6d6e63(jetbrains.mps.coderules.typechecking.service)" />
<import index="z9ve" ref="bbf5c548-7111-4a53-a117-cdefc664cf34/java:jetbrains.mps.logic.reactor.core.internal(jetbrains.mps.logic.reactor/)" />
<import index="oy3s" ref="r:a6030cee-34eb-4503-b1bf-015fe5cd8c1a(jetbrains.mps.logic.unification)" />
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
</imports>
<registry>
<language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
@ -356,7 +353,9 @@
<concept id="1188473524530" name="jetbrains.mps.lang.typesystem.structure.MeetType" flags="ng" index="2QyH0A">
<child id="1188473537547" name="argument" index="2QyKkv" />
</concept>
<concept id="1185281562361" name="jetbrains.mps.lang.typesystem.structure.RuntimeErrorType" flags="in" index="3SilvE" />
<concept id="1185281562361" name="jetbrains.mps.lang.typesystem.structure.RuntimeErrorType" flags="in" index="3SilvE">
<property id="1185281562362" name="errorText" index="3SilvD" />
</concept>
</language>
<language id="35320f26-77cb-4c55-be9f-a97a27770af1" name="jetbrains.mps.logic">
<concept id="238586457668550951" name="jetbrains.mps.logic.structure.Splice" flags="ng" index="22Ky0T">
@ -535,11 +534,6 @@
<child id="3078666699043039389" name="commentedNode" index="8Wnug" />
</concept>
</language>
<language id="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462" name="jetbrains.mps.lang.typechecking">
<concept id="6958395084019752" name="jetbrains.mps.lang.typechecking.structure.SNodeSetTypeOperation" flags="ng" index="2ra22R">
<child id="6958395084020241" name="typeExpr" index="2ra2ae" />
</concept>
</language>
<language id="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text">
<concept id="155656958578482948" name="jetbrains.mps.lang.text.structure.Word" flags="ng" index="3oM_SD">
<property id="155656958578482949" name="value" index="3oM_SC" />
@ -644,9 +638,6 @@
<concept id="5686963296372475025" name="jetbrains.mps.baseLanguage.collections.structure.QueueType" flags="in" index="3O6Q9H" />
<concept id="1180964022718" name="jetbrains.mps.baseLanguage.collections.structure.ConcatOperation" flags="nn" index="3QWeyG" />
</language>
<language id="cba985fe-1e96-4f16-9f8d-b07434405d4f" name="jetbrains.mps.lang.smodel.types">
<concept id="7345257067587627589" name="jetbrains.mps.lang.smodel.types.structure.SNodeTypeOperation" flags="ng" index="2W$R8B" />
</language>
<language id="c4803b19-6d89-4a3b-bf82-390769514add" name="jetbrains.mps.lang.coderules">
<concept id="8456919074560454386" name="jetbrains.mps.lang.coderules.structure.ParameterContainer" flags="ng" index="0eUR_">
<child id="8456919074560454898" name="parameter" index="0eVf_" />
@ -22454,15 +22445,23 @@
<node concept="3AqmO8" id="6Qzc0KyJGJT" role="8PkJo">
<property role="TrG5h" value="recover" />
<node concept="1zAUYm" id="6Qzc0KyJGLv" role="1zAUyy">
<property role="TrG5h" value="foo" />
<property role="TrG5h" value="type" />
<node concept="3Tqbb2" id="5f6wxQ39f0y" role="3gTf24" />
</node>
<node concept="1zAUYm" id="6Qzc0KyJGLF" role="1zAUyy">
<property role="TrG5h" value="bar" />
<property role="TrG5h" value="term" />
</node>
</node>
<node concept="3AqmO8" id="20Zoq4kTOFb" role="8PkJo">
<property role="TrG5h" value="recoverAll" />
<node concept="1zAUYm" id="5fMWD6H$5Wy" role="1zAUyy">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="5fMWD6HQXA4" role="3gTf24">
<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="3AqmO8" id="6N2bvv_l2qf" role="8PkJo">
<property role="TrG5h" value="recoverList" />
@ -22477,9 +22476,13 @@
<node concept="3AqmO8" id="35YJGAJTRng" role="8PkJo">
<property role="TrG5h" value="expectType" />
<node concept="1zAUYm" id="35YJGAJTRnn" role="1zAUyy">
<property role="TrG5h" value="node" />
<property role="TrG5h" value="location" />
<node concept="2sp9CU" id="35YJGAJTTpv" role="3gTf24" />
</node>
<node concept="1zAUYm" id="5fMWD6H$6bt" role="1zAUyy">
<property role="TrG5h" value="type" />
<node concept="3Tqbb2" id="5fMWD6H$6hR" role="3gTf24" />
</node>
</node>
<node concept="1nLNMY" id="12QmIo_7seY" role="1nK1Vg">
<property role="TrG5h" value="expect_typeOf_expression" />
@ -22487,6 +22490,16 @@
<node concept="1nLNNL" id="12QmIo_7sf0" role="3cqZAp">
<node concept="1nLNMm" id="12QmIo_7sf1" role="1nLNNK">
<node concept="0eUR_" id="7lt0LtPBjTO" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6H$66B" role="0eVf_">
<node concept="aZer4" id="5fMWD6H$66C" role="3XD1gS">
<property role="TrG5h" value="TypesUpdate" />
</node>
<node concept="3uibUv" id="5fMWD6HQXZl" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HQXZm" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HQXZn" role="11_B2D" />
</node>
</node>
<node concept="3NuqgR" id="20Zoq4kTOEm" role="0eVf_">
<node concept="aZer4" id="20Zoq4kTOEn" role="3XD1gS">
<property role="TrG5h" value="Node" />
@ -22505,6 +22518,9 @@
<node concept="3I6s7M" id="4nIWweBEY4v" role="3I6sU7">
<node concept="3Aqt3T" id="20Zoq4kTOWU" role="3I6s78">
<ref role="3AqCNq" node="20Zoq4kTOFb" resolve="recoverAll" />
<node concept="a7P8L" id="5fMWD6H$68P" role="3AunhB">
<ref role="a7OzE" node="5fMWD6H$66C" resolve="TypesUpdate" />
</node>
</node>
</node>
</node>
@ -22519,6 +22535,38 @@
<ref role="3A2yKK" node="20Zoq4kTOD0" resolve="expr" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$6jz" role="3AunhB">
<ref role="a7OzE" node="20Zoq4kTOEn" resolve="Node" />
</node>
</node>
</node>
<node concept="3I6s7M" id="5fMWD6H$6lF" role="3I6sU7">
<node concept="3wWvb2" id="5fMWD6H$6lB" role="3I6s78">
<node concept="2OqwBi" id="5fMWD6Im8AZ" role="3wWo3s">
<node concept="1TmgYN" id="5fMWD6H$6lO" role="2Oq$k0">
<node concept="1nq8_$" id="5fMWD6H$6lZ" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6H$6lX" role="1nq8_t">
<ref role="a7OzE" node="5fMWD6H$66C" resolve="TypesUpdate" />
</node>
</node>
</node>
<node concept="liA8E" id="5fMWD6Im8XT" role="2OqNvi">
<ref role="37wK5l" to="82uw:~BiConsumer.accept(java.lang.Object,java.lang.Object)" resolve="accept" />
<node concept="2OqwBi" id="5fMWD6Im95t" role="37wK5m">
<node concept="3A2sRY" id="5fMWD6Im95u" role="2Oq$k0">
<ref role="3A2yKK" node="20Zoq4kTOD0" resolve="expr" />
</node>
<node concept="iZEcu" id="5fMWD6Im95v" role="2OqNvi" />
</node>
<node concept="1TmgYN" id="5fMWD6Im9qg" role="37wK5m">
<node concept="1nq8_$" id="5fMWD6Im9qh" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6Im9qi" role="1nq8_t">
<ref role="a7OzE" node="20Zoq4kTOEn" resolve="Node" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -22539,6 +22587,16 @@
<node concept="1nLNNL" id="12QmIo_7sf4" role="3cqZAp">
<node concept="1nLNMm" id="12QmIo_7sf5" role="1nLNNK">
<node concept="0eUR_" id="7lt0LtPBjTY" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6H$7XB" role="0eVf_">
<node concept="aZer4" id="5fMWD6H$7XC" role="3XD1gS">
<property role="TrG5h" value="TypeCollector" />
</node>
<node concept="3uibUv" id="5fMWD6HQY2E" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HQY2F" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HQY2G" role="11_B2D" />
</node>
</node>
<node concept="3NuqgR" id="5upUcEtfuXu" role="0eVf_">
<node concept="aZer4" id="5upUcEtfuXv" role="3XD1gS">
<property role="TrG5h" value="Node" />
@ -22557,6 +22615,9 @@
<node concept="3I6s7M" id="5upUcEtfuXI" role="3I6sU7">
<node concept="3Aqt3T" id="5upUcEtfuXJ" role="3I6s78">
<ref role="3AqCNq" node="20Zoq4kTOFb" resolve="recoverAll" />
<node concept="a7P8L" id="5fMWD6H$7Yp" role="3AunhB">
<ref role="a7OzE" node="5fMWD6H$7XC" resolve="TypeCollector" />
</node>
</node>
</node>
</node>
@ -22571,6 +22632,38 @@
<ref role="3A2yKK" node="5upUcEtfuXQ" resolve="op" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$80O" role="3AunhB">
<ref role="a7OzE" node="5upUcEtfuXv" resolve="Node" />
</node>
</node>
</node>
<node concept="3I6s7M" id="5fMWD6H$82L" role="3I6sU7">
<node concept="3wWvb2" id="5fMWD6H$82M" role="3I6s78">
<node concept="2OqwBi" id="5fMWD6Im9P1" role="3wWo3s">
<node concept="1TmgYN" id="5fMWD6Im9P2" role="2Oq$k0">
<node concept="1nq8_$" id="5fMWD6Im9P3" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6Im9P4" role="1nq8_t">
<ref role="a7OzE" node="5fMWD6H$7XC" resolve="TypeCollector" />
</node>
</node>
</node>
<node concept="liA8E" id="5fMWD6Im9P5" role="2OqNvi">
<ref role="37wK5l" to="82uw:~BiConsumer.accept(java.lang.Object,java.lang.Object)" resolve="accept" />
<node concept="2OqwBi" id="5fMWD6Im9P6" role="37wK5m">
<node concept="3A2sRY" id="5fMWD6Im9Tz" role="2Oq$k0">
<ref role="3A2yKK" node="5upUcEtfuXQ" resolve="op" />
</node>
<node concept="iZEcu" id="5fMWD6Im9P8" role="2OqNvi" />
</node>
<node concept="1TmgYN" id="5fMWD6Im9P9" role="37wK5m">
<node concept="1nq8_$" id="5fMWD6Im9Pa" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6Im9Pb" role="1nq8_t">
<ref role="a7OzE" node="5upUcEtfuXv" resolve="Node" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -22591,6 +22684,16 @@
<node concept="1nLNNL" id="12QmIo_7sf8" role="3cqZAp">
<node concept="1nLNMm" id="12QmIo_7sf9" role="1nLNNK">
<node concept="0eUR_" id="7lt0LtPBjTx" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6H$84S" role="0eVf_">
<node concept="aZer4" id="5fMWD6H$84T" role="3XD1gS">
<property role="TrG5h" value="TypeCollector" />
</node>
<node concept="3uibUv" id="5fMWD6HQY4g" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HQY4h" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HQY4i" role="11_B2D" />
</node>
</node>
<node concept="3NuqgR" id="4BHjwwGCsOO" role="0eVf_">
<node concept="aZer4" id="4BHjwwGCsOP" role="3XD1gS">
<property role="TrG5h" value="Node" />
@ -22609,6 +22712,9 @@
<node concept="3I6s7M" id="4BHjwwGCsNJ" role="3I6sU7">
<node concept="3Aqt3T" id="4BHjwwGCsNI" role="3I6s78">
<ref role="3AqCNq" node="20Zoq4kTOFb" resolve="recoverAll" />
<node concept="a7P8L" id="5fMWD6H$85q" role="3AunhB">
<ref role="a7OzE" node="5fMWD6H$84T" resolve="TypeCollector" />
</node>
</node>
</node>
</node>
@ -22623,6 +22729,38 @@
<ref role="3A2yKK" node="4BHjwwGCsMO" resolve="vd" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$87Z" role="3AunhB">
<ref role="a7OzE" node="4BHjwwGCsOP" resolve="Node" />
</node>
</node>
</node>
<node concept="3I6s7M" id="5fMWD6H$89W" role="3I6sU7">
<node concept="3wWvb2" id="5fMWD6H$89X" role="3I6s78">
<node concept="2OqwBi" id="5fMWD6Ima89" role="3wWo3s">
<node concept="1TmgYN" id="5fMWD6Ima8a" role="2Oq$k0">
<node concept="1nq8_$" id="5fMWD6Ima8b" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6Ima8c" role="1nq8_t">
<ref role="a7OzE" node="5fMWD6H$84T" resolve="TypeCollector" />
</node>
</node>
</node>
<node concept="liA8E" id="5fMWD6Ima8d" role="2OqNvi">
<ref role="37wK5l" to="82uw:~BiConsumer.accept(java.lang.Object,java.lang.Object)" resolve="accept" />
<node concept="2OqwBi" id="5fMWD6Ima8e" role="37wK5m">
<node concept="3A2sRY" id="5fMWD6Imadf" role="2Oq$k0">
<ref role="3A2yKK" node="4BHjwwGCsMO" resolve="vd" />
</node>
<node concept="iZEcu" id="5fMWD6Ima8g" role="2OqNvi" />
</node>
<node concept="1TmgYN" id="5fMWD6Ima8h" role="37wK5m">
<node concept="1nq8_$" id="5fMWD6Ima8i" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6Ima8j" role="1nq8_t">
<ref role="a7OzE" node="4BHjwwGCsOP" resolve="Node" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -22643,6 +22781,16 @@
<node concept="1nLNNL" id="12QmIo_7sfc" role="3cqZAp">
<node concept="1nLNMm" id="12QmIo_7sfd" role="1nLNNK">
<node concept="0eUR_" id="7lt0LtPBjUg" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6H$8bN" role="0eVf_">
<node concept="aZer4" id="5fMWD6H$8bO" role="3XD1gS">
<property role="TrG5h" value="TypeCollector" />
</node>
<node concept="3uibUv" id="5fMWD6HQY5T" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HQY5U" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HQY5V" role="11_B2D" />
</node>
</node>
<node concept="3NuqgR" id="5upUcEthcNI" role="0eVf_">
<node concept="aZer4" id="5upUcEthcNJ" role="3XD1gS">
<property role="TrG5h" value="Node" />
@ -22661,6 +22809,9 @@
<node concept="3I6s7M" id="5upUcEthcNM" role="3I6sU7">
<node concept="3Aqt3T" id="5upUcEthcNN" role="3I6s78">
<ref role="3AqCNq" node="20Zoq4kTOFb" resolve="recoverAll" />
<node concept="a7P8L" id="5fMWD6H$8cp" role="3AunhB">
<ref role="a7OzE" node="5fMWD6H$8bO" resolve="TypeCollector" />
</node>
</node>
</node>
</node>
@ -22675,6 +22826,38 @@
<ref role="3A2yKK" node="5upUcEthcNW" resolve="ac" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$8eO" role="3AunhB">
<ref role="a7OzE" node="5upUcEthcNJ" resolve="Node" />
</node>
</node>
</node>
<node concept="3I6s7M" id="5fMWD6H$8gL" role="3I6sU7">
<node concept="3wWvb2" id="5fMWD6H$8gM" role="3I6s78">
<node concept="2OqwBi" id="5fMWD6Imath" role="3wWo3s">
<node concept="1TmgYN" id="5fMWD6Imati" role="2Oq$k0">
<node concept="1nq8_$" id="5fMWD6Imatj" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6Imatk" role="1nq8_t">
<ref role="a7OzE" node="5fMWD6H$8bO" resolve="TypeCollector" />
</node>
</node>
</node>
<node concept="liA8E" id="5fMWD6Imatl" role="2OqNvi">
<ref role="37wK5l" to="82uw:~BiConsumer.accept(java.lang.Object,java.lang.Object)" resolve="accept" />
<node concept="2OqwBi" id="5fMWD6Imatm" role="37wK5m">
<node concept="3A2sRY" id="5fMWD6Imay9" role="2Oq$k0">
<ref role="3A2yKK" node="5upUcEthcNW" resolve="ac" />
</node>
<node concept="iZEcu" id="5fMWD6Imato" role="2OqNvi" />
</node>
<node concept="1TmgYN" id="5fMWD6Imatp" role="37wK5m">
<node concept="1nq8_$" id="5fMWD6Imatq" role="1Tms7$">
<node concept="a7P8L" id="5fMWD6Imatr" role="1nq8_t">
<ref role="a7OzE" node="5upUcEthcNJ" resolve="Node" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -22689,6 +22872,39 @@
</node>
</node>
</node>
<node concept="1nLNMY" id="5fMWD6HVkpJ" role="1nK1Vg">
<property role="TrG5h" value="recoverAll_final" />
<node concept="3clFbS" id="5fMWD6HVkpK" role="1nLNMH">
<node concept="1nLNNL" id="5fMWD6HVl1V" role="3cqZAp">
<node concept="1nLNMm" id="5fMWD6HVl1X" role="1nLNNK">
<node concept="0eUR_" id="5fMWD6HVl22" role="0UC6o">
<node concept="3NuqgR" id="5fMWD6HVl2c" role="0eVf_">
<node concept="aZer4" id="5fMWD6HVl2d" role="3XD1gS">
<property role="TrG5h" value="TypesUpdate" />
</node>
<node concept="3uibUv" id="5fMWD6HVl2e" role="3vLBG7">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HVl2f" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HVl2g" role="11_B2D" />
</node>
</node>
</node>
<node concept="3Aq93q" id="5fMWD6HVl24" role="1nLNMb">
<node concept="3I6sU6" id="5fMWD6HVl25" role="3Ip0Jz">
<node concept="3I6s7M" id="5fMWD6HVl29" role="3I6sU7">
<node concept="3Aqt3T" id="5fMWD6HVl28" role="3I6s78">
<ref role="3AqCNq" node="20Zoq4kTOFb" resolve="recoverAll" />
<node concept="a7P8L" id="5fMWD6HVl2Z" role="3AunhB">
<ref role="a7OzE" node="5fMWD6HVl2d" resolve="TypesUpdate" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1nLNMY" id="35YJGAJTRFo" role="1nK1Vg">
<property role="TrG5h" value="typeOf_expression" />
<node concept="3clFbS" id="35YJGAJTRFp" role="1nLNMH">
@ -22718,6 +22934,9 @@
<ref role="3A2yKK" node="35YJGAJTRFW" resolve="expr" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$8iN" role="3AunhB">
<ref role="a7OzE" node="35YJGAJTRFu" resolve="Node" />
</node>
</node>
</node>
</node>
@ -22753,27 +22972,6 @@
</node>
</node>
</node>
<node concept="3I6s7M" id="35YJGAJTRFL" role="3I6sU7">
<node concept="3wWvb2" id="35YJGAJTRFM" role="3I6s78">
<node concept="2OqwBi" id="35YJGAJTRFN" role="3wWo3s">
<node concept="2OqwBi" id="35YJGAJTRFO" role="2Oq$k0">
<node concept="3A2sRY" id="35YJGAJTRFP" role="2Oq$k0">
<ref role="3A2yKK" node="35YJGAJTRFW" resolve="expr" />
</node>
<node concept="2W$R8B" id="35YJGAJTRFQ" role="2OqNvi" />
</node>
<node concept="2ra22R" id="35YJGAJTRFR" role="2OqNvi">
<node concept="1TmgYN" id="35YJGAJTRFS" role="2ra2ae">
<node concept="1nq8_$" id="35YJGAJTRFT" role="1Tms7$">
<node concept="a7P8L" id="35YJGAJTRFU" role="1nq8_t">
<ref role="a7OzE" node="35YJGAJTRFu" resolve="Node" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -22819,6 +23017,9 @@
</node>
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$8kQ" role="3AunhB">
<ref role="a7OzE" node="35YJGAJTSkG" resolve="Node" />
</node>
</node>
</node>
</node>
@ -22854,27 +23055,6 @@
</node>
</node>
</node>
<node concept="3I6s7M" id="35YJGAJTSkZ" role="3I6sU7">
<node concept="3wWvb2" id="35YJGAJTSl0" role="3I6s78">
<node concept="2OqwBi" id="35YJGAJTSl1" role="3wWo3s">
<node concept="2OqwBi" id="35YJGAJTSl2" role="2Oq$k0">
<node concept="3A2sRY" id="35YJGAJTSl3" role="2Oq$k0">
<ref role="3A2yKK" node="35YJGAJTSla" resolve="op" />
</node>
<node concept="2W$R8B" id="35YJGAJTSl4" role="2OqNvi" />
</node>
<node concept="2ra22R" id="35YJGAJTSl5" role="2OqNvi">
<node concept="1TmgYN" id="35YJGAJTSl6" role="2ra2ae">
<node concept="1nq8_$" id="35YJGAJTSl7" role="1Tms7$">
<node concept="a7P8L" id="35YJGAJTSl8" role="1nq8_t">
<ref role="a7OzE" node="35YJGAJTSkG" resolve="Node" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -22916,6 +23096,9 @@
<ref role="3A2yKK" node="35YJGAJTTbE" resolve="vd" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$8mT" role="3AunhB">
<ref role="a7OzE" node="35YJGAJTTbc" resolve="Node" />
</node>
</node>
</node>
</node>
@ -22951,27 +23134,6 @@
</node>
</node>
</node>
<node concept="3I6s7M" id="35YJGAJTTbv" role="3I6sU7">
<node concept="3wWvb2" id="35YJGAJTTbw" role="3I6s78">
<node concept="2OqwBi" id="35YJGAJTTbx" role="3wWo3s">
<node concept="2OqwBi" id="35YJGAJTTby" role="2Oq$k0">
<node concept="3A2sRY" id="35YJGAJTTbz" role="2Oq$k0">
<ref role="3A2yKK" node="35YJGAJTTbE" resolve="vd" />
</node>
<node concept="2W$R8B" id="35YJGAJTTb$" role="2OqNvi" />
</node>
<node concept="2ra22R" id="35YJGAJTTb_" role="2OqNvi">
<node concept="1TmgYN" id="35YJGAJTTbA" role="2ra2ae">
<node concept="1nq8_$" id="35YJGAJTTbB" role="1Tms7$">
<node concept="a7P8L" id="35YJGAJTTbC" role="1nq8_t">
<ref role="a7OzE" node="35YJGAJTTbc" resolve="Node" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -23013,6 +23175,9 @@
<ref role="3A2yKK" node="35YJGAJTTr1" resolve="ac" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$8oU" role="3AunhB">
<ref role="a7OzE" node="35YJGAJTTqz" resolve="Node" />
</node>
</node>
</node>
</node>
@ -23048,27 +23213,6 @@
</node>
</node>
</node>
<node concept="3I6s7M" id="35YJGAJTTqQ" role="3I6sU7">
<node concept="3wWvb2" id="35YJGAJTTqR" role="3I6s78">
<node concept="2OqwBi" id="35YJGAJTTqS" role="3wWo3s">
<node concept="2OqwBi" id="35YJGAJTTqT" role="2Oq$k0">
<node concept="3A2sRY" id="35YJGAJTTqU" role="2Oq$k0">
<ref role="3A2yKK" node="35YJGAJTTr1" resolve="ac" />
</node>
<node concept="2W$R8B" id="35YJGAJTTqV" role="2OqNvi" />
</node>
<node concept="2ra22R" id="35YJGAJTTqW" role="2OqNvi">
<node concept="1TmgYN" id="35YJGAJTTqX" role="2ra2ae">
<node concept="1nq8_$" id="35YJGAJTTqY" role="1Tms7$">
<node concept="a7P8L" id="35YJGAJTTqZ" role="1nq8_t">
<ref role="a7OzE" node="35YJGAJTTqz" resolve="Node" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -23110,6 +23254,9 @@
<ref role="3A2yKK" node="35YJGAJTUl$" resolve="expr" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$8qV" role="3AunhB">
<ref role="a7OzE" node="35YJGAJTUll" resolve="Node" />
</node>
</node>
</node>
</node>
@ -23165,6 +23312,9 @@
<ref role="3A2yKK" node="35YJGAJTUle" resolve="op" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$8rq" role="3AunhB">
<ref role="a7OzE" node="35YJGAJTUkZ" resolve="Node" />
</node>
</node>
</node>
</node>
@ -23179,6 +23329,20 @@
</node>
</node>
</node>
<node concept="3I6s7M" id="5fMWD6H$8u7" role="3I6sU7">
<node concept="3A8Hvi" id="5fMWD6H$8u1" role="3I6s78">
<node concept="a7P8L" id="5fMWD6H$8uC" role="3A8wtg">
<ref role="a7OzE" node="35YJGAJTUkZ" resolve="Node" />
</node>
<node concept="HKQnh" id="5fMWD6H$8uK" role="3A8w4Q">
<node concept="2c44tf" id="5fMWD6H$8uP" role="HKQng">
<node concept="3SilvE" id="5fMWD6H$8v7" role="2c44tc">
<property role="3SilvD" value="no type" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -23220,6 +23384,9 @@
<ref role="3A2yKK" node="35YJGAJTUkS" resolve="vd" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$8Ex" role="3AunhB">
<ref role="a7OzE" node="35YJGAJTUkD" resolve="Node" />
</node>
</node>
</node>
</node>
@ -23234,6 +23401,20 @@
</node>
</node>
</node>
<node concept="3I6s7M" id="5fMWD6H$8Gn" role="3I6sU7">
<node concept="3A8Hvi" id="5fMWD6H$8Go" role="3I6s78">
<node concept="a7P8L" id="5fMWD6H$8Gp" role="3A8wtg">
<ref role="a7OzE" node="35YJGAJTUkD" resolve="Node" />
</node>
<node concept="HKQnh" id="5fMWD6H$8Gq" role="3A8w4Q">
<node concept="2c44tf" id="5fMWD6H$8Gr" role="HKQng">
<node concept="3SilvE" id="5fMWD6H$8Gs" role="2c44tc">
<property role="3SilvD" value="no type" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -23275,6 +23456,9 @@
<ref role="3A2yKK" node="35YJGAJTUky" resolve="ac" />
</node>
</node>
<node concept="a7P8L" id="5fMWD6H$8O7" role="3AunhB">
<ref role="a7OzE" node="35YJGAJTUkj" resolve="Node" />
</node>
</node>
</node>
</node>
@ -23289,6 +23473,20 @@
</node>
</node>
</node>
<node concept="3I6s7M" id="5fMWD6H$8Q2" role="3I6sU7">
<node concept="3A8Hvi" id="5fMWD6H$8Q3" role="3I6s78">
<node concept="a7P8L" id="5fMWD6H$8Q4" role="3A8wtg">
<ref role="a7OzE" node="35YJGAJTUkj" resolve="Node" />
</node>
<node concept="HKQnh" id="5fMWD6H$8Q5" role="3A8w4Q">
<node concept="2c44tf" id="5fMWD6H$8Q6" role="HKQng">
<node concept="3SilvE" id="5fMWD6H$8Q7" role="2c44tc">
<property role="3SilvD" value="no type" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
@ -25335,7 +25533,7 @@
</node>
<node concept="3cpWs3" id="27bTNFf1_H3" role="3uHU7B">
<node concept="Xl_RD" id="27bTNFf1_H4" role="3uHU7B">
<property role="Xl_RC" value="unreifieable type [" />
<property role="Xl_RC" value="unreifiable type [" />
</node>
<node concept="1TmgYN" id="27bTNFf1_H5" role="3uHU7w">
<node concept="1nq8_$" id="27bTNFf1_H6" role="1Tms7$">
@ -30856,6 +31054,14 @@
<node concept="92CTh" id="6OXbTD$fto2">
<property role="TrG5h" value="Typecheck" />
<property role="3GE5qa" value="query" />
<node concept="2_cOLj" id="5fMWD6HFjux" role="2_cLD1">
<property role="TrG5h" value="typeCollector" />
<node concept="3uibUv" id="5fMWD6HQY7C" role="2_9F96">
<ref role="3uigEE" to="82uw:~BiConsumer" resolve="BiConsumer" />
<node concept="2sp9CU" id="5fMWD6HQY7D" role="11_B2D" />
<node concept="3Tqbb2" id="5fMWD6HQY7E" role="11_B2D" />
</node>
</node>
<node concept="2bWyPT" id="6OXbTD$ftqj" role="92CTm">
<property role="TrG5h" value="check" />
<node concept="3clFbS" id="6OXbTD$ftqk" role="fHCRw">
@ -30871,6 +31077,11 @@
<node concept="3I6s7M" id="12QmIoyIWn9" role="3I6sU7">
<node concept="3Aqt3T" id="12QmIoyIWn7" role="3I6s78">
<ref role="3AqCNq" node="20Zoq4kTOFb" resolve="recoverAll" />
<node concept="aZ4PW" id="5fMWD6HQq56" role="3AunhB">
<node concept="2_cIyK" id="5fMWD6HQq5e" role="aZ4eD">
<ref role="2_cIwb" node="5fMWD6HFjux" resolve="typeCollector" />
</node>
</node>
</node>
</node>
</node>