Update query templates to not use QueryParameterReference.

QueryParameter is always referring to Query instance passed
to the template.
Drop QueryKind and parameter declarations from query templates.
This commit is contained in:
Fedor Isakov 2020-04-22 11:21:06 +02:00
parent 767a41ad24
commit f23ea05b65
5 changed files with 102 additions and 169 deletions

View File

@ -32,9 +32,6 @@
<concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
<reference id="1144433194310" name="classConcept" index="1Pybhc" />
</concept>
<concept id="1070533707846" name="jetbrains.mps.baseLanguage.structure.StaticFieldReference" flags="nn" index="10M0yZ">
<reference id="1144433057691" name="classifier" index="1PxDUh" />
</concept>
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
<child id="1068431790190" name="initializer" index="33vP2m" />
@ -159,8 +156,6 @@
</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">
<reference id="6533016889631295418" name="queryType" index="KG3u5" />
@ -191,17 +186,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" />
<child id="3575255234175157601" name="template" index="1nK1Vg" />
</concept>
<concept id="6533016889632449861" name="jetbrains.mps.lang.coderules.structure.QueryParameter" flags="ng" index="KwDlU" />
<concept id="2381360340662937504" name="jetbrains.mps.lang.coderules.structure.TermType" flags="ig" index="32pEOW" />
<concept id="6097203247139556923" name="jetbrains.mps.lang.coderules.structure.CallMacroTemplate" flags="ng" index="3hwh0R">
<child id="6097203247147235901" name="logical" index="3h32gL" />
@ -738,14 +728,6 @@
</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" />
<ref role="KG3u5" to="tj24:5EDW3XDYNPr" resolve="CheckQuery" />
@ -768,8 +750,15 @@
<node concept="3Aqt3T" id="7mB3viLbExT" role="3I6s78">
<ref role="3AqCNq" node="7lt0LtPOZVl" resolve="recover" />
<node concept="37jhX" id="5HLeEcf2Ujj" role="3AunhB">
<node concept="2_cIyK" id="5fMWD6IydEt" role="37jj2">
<ref role="2_cIwb" node="5fMWD6IydE6" resolve="typeCollector" />
<node concept="1nq8_$" id="5EDW3XEGpAq" role="37jj2">
<node concept="37jhX" id="5EDW3XEGpAp" role="1nq8_t">
<node concept="2OqwBi" id="5EDW3XEGpQT" role="37jj2">
<node concept="KwDlU" id="5EDW3XEGpAo" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEGq3O" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XDYOgY" resolve="getTypesCollector" />
</node>
</node>
</node>
</node>
</node>
</node>
@ -781,10 +770,6 @@
</node>
</node>
</node>
<node concept="10M0yZ" id="4RzhaQIJMWV" role="2_lZgo">
<ref role="3cqZAo" to="tj24:4t7Xo7inNvw" resolve="TYPECHECK" />
<ref role="1PxDUh" to="tj24:4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
</node>
<node concept="AVZre" id="7mB3viLbCp8">
<property role="TrG5h" value="Typeof" />
@ -1304,14 +1289,6 @@
</node>
<node concept="92CTh" id="7mB3viLg9a7">
<property role="TrG5h" value="ConvertQuery" />
<node concept="2_cOLj" id="7mB3viLg9eu" role="2_cLD1">
<property role="TrG5h" value="from" />
<node concept="3Tqbb2" id="7mB3viLg9fg" role="2_9F96" />
</node>
<node concept="2_cOLj" id="7mB3viLg9fj" role="2_cLD1">
<property role="TrG5h" value="to" />
<node concept="3Tqbb2" id="7mB3viLg9g7" role="2_9F96" />
</node>
<node concept="2bWyPT" id="7mB3viLg9bK" role="92CTm">
<property role="TrG5h" value="main" />
<ref role="KG3u5" to="tj24:5EDW3XDYNS7" resolve="ConvertQuery" />
@ -1333,8 +1310,11 @@
<node concept="3I6s7M" id="1ALxU7rhvjz" role="3I6sU7">
<node concept="3jbYBd" id="1ALxU7rhvjw" role="3I6s78">
<ref role="3jbY9l" node="1ALxU7rg9$e" resolve="lift" />
<node concept="2_cIyK" id="1ALxU7rhwbC" role="3jbY8P">
<ref role="2_cIwb" node="7mB3viLg9eu" resolve="from" />
<node concept="2OqwBi" id="5EDW3XEGpi0" role="3jbY8P">
<node concept="KwDlU" id="5EDW3XEGp9K" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEGpvz" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XDYObD" resolve="getFrom" />
</node>
</node>
<node concept="a7P8L" id="1ALxU7rhwbx" role="3jbY8V">
<ref role="a7OzE" node="7mB3viLg9gi" resolve="From" />
@ -1344,14 +1324,21 @@
<node concept="3I6s7M" id="1ALxU7rhynO" role="3I6sU7">
<node concept="3jbYBd" id="1ALxU7rhynL" role="3I6s78">
<ref role="3jbY9l" node="1ALxU7rg9$e" resolve="lift" />
<node concept="2_cIyK" id="1ALxU7rhyO3" role="3jbY8P">
<ref role="2_cIwb" node="7mB3viLg9fj" resolve="to" />
<node concept="2OqwBi" id="5EDW3XEGpwc" role="3jbY8P">
<node concept="KwDlU" id="5EDW3XEGpw0" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEGpwV" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XDYOe6" resolve="getTo" />
</node>
</node>
<node concept="a7P8L" id="1ALxU7rkvea" role="3jbY8V">
<ref role="a7OzE" node="7mB3viLg9gr" resolve="To" />
</node>
</node>
</node>
</node>
</node>
<node concept="3Aq9E8" id="5EDW3XEGpxp" role="3xSepj">
<node concept="3I6sU6" id="5EDW3XEGpxq" role="3Ip0Jz">
<node concept="3I6s7M" id="7mB3viLieFT" role="3I6sU7">
<node concept="3Aqt3T" id="7mB3viLieFR" role="3I6s78">
<ref role="3AqCNq" node="3IIf9OArhmN" resolve="convert" />
@ -1370,10 +1357,6 @@
</node>
</node>
</node>
<node concept="10M0yZ" id="4RzhaQIJMX0" role="2_lZgo">
<ref role="3cqZAo" to="tj24:4t7Xo7inO_s" resolve="CONVERT" />
<ref role="1PxDUh" to="tj24:4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
</node>
<node concept="ns1xd" id="JOGAOsVt6x">
<property role="TrG5h" value="Types" />

View File

@ -24,12 +24,6 @@
<concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
<property id="1070475926801" name="value" index="Xl_RC" />
</concept>
<concept id="1070533707846" name="jetbrains.mps.baseLanguage.structure.StaticFieldReference" flags="nn" index="10M0yZ">
<reference id="1144433057691" name="classifier" index="1PxDUh" />
</concept>
<concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
</concept>
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
<child id="1068581517665" name="statement" index="3cqZAp" />
</concept>
@ -65,6 +59,9 @@
<reference id="8829335963593822893" name="declaration" index="a7OzE" />
</concept>
<concept id="8829335963591572611" name="jetbrains.mps.logic.structure.LogicalVariableDeclaration" flags="ng" index="aZer4" />
<concept id="4780620083400582599" name="jetbrains.mps.logic.structure.LogicalItemExpression" flags="ng" index="1nq8_$">
<child id="4780620083400582654" name="logical" index="1nq8_t" />
</concept>
<concept id="8713947027062024097" name="jetbrains.mps.logic.structure.LogicalItemValueExpression" flags="ng" index="1Ft4W6">
<child id="8713947027062064784" name="logical" index="1FtiSR" />
</concept>
@ -85,8 +82,6 @@
<language id="c4803b19-6d89-4a3b-bf82-390769514add" name="jetbrains.mps.lang.coderules">
<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">
<reference id="6533016889631295418" name="queryType" index="KG3u5" />
@ -103,16 +98,11 @@
<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" />
</concept>
<concept id="6533016889632449861" name="jetbrains.mps.lang.coderules.structure.QueryParameter" flags="ng" index="KwDlU" />
<concept id="4957570047283823112" name="jetbrains.mps.lang.coderules.structure.ProvideFeedbackConstraint" flags="ng" index="1lHd6T">
<property id="4957570047283824112" name="severity" index="1lHdp1" />
<child id="4957570047284421439" name="message" index="1ljv2e" />
@ -541,14 +531,6 @@
</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" />
<ref role="KG3u5" to="tj24:5EDW3XDYNPr" resolve="CheckQuery" />
@ -562,8 +544,15 @@
<node concept="3Aqt3T" id="2rdxkKxrXAk" role="3I6s78">
<ref role="3AqCNq" node="2aBGSFge6lJ" resolve="checkAll" />
<node concept="37jhX" id="5HLeEcf2UnH" role="3AunhB">
<node concept="2_cIyK" id="5fMWD6IydCt" role="37jj2">
<ref role="2_cIwb" node="5fMWD6Iy9vK" resolve="typeCollector" />
<node concept="1nq8_$" id="5EDW3XEGqcw" role="37jj2">
<node concept="37jhX" id="5EDW3XEGqcv" role="1nq8_t">
<node concept="2OqwBi" id="5EDW3XEGqlP" role="37jj2">
<node concept="KwDlU" id="5EDW3XEGqcu" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEGqwI" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XDYOgY" resolve="getTypesCollector" />
</node>
</node>
</node>
</node>
</node>
</node>
@ -575,10 +564,6 @@
</node>
</node>
</node>
<node concept="10M0yZ" id="4RzhaQIJMWM" role="2_lZgo">
<ref role="3cqZAo" to="tj24:4t7Xo7inNvw" resolve="TYPECHECK" />
<ref role="1PxDUh" to="tj24:4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
</node>
<node concept="ns1xd" id="7VBaGntKJ6x">
<property role="TrG5h" value="Types" />

View File

@ -66,9 +66,6 @@
<concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
<reference id="1144433194310" name="classConcept" index="1Pybhc" />
</concept>
<concept id="1070533707846" name="jetbrains.mps.baseLanguage.structure.StaticFieldReference" flags="nn" index="10M0yZ">
<reference id="1144433057691" name="classifier" index="1PxDUh" />
</concept>
<concept id="1070534370425" name="jetbrains.mps.baseLanguage.structure.IntegerType" flags="in" index="10Oyi0" />
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
<concept id="1070534934090" name="jetbrains.mps.baseLanguage.structure.CastExpression" flags="nn" index="10QFUN">
@ -371,8 +368,6 @@
</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">
<child id="1980609059169917850" name="origin" index="9KHbC" />
@ -412,12 +407,6 @@
<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" />
@ -426,6 +415,7 @@
<concept id="6856711987714624232" name="jetbrains.mps.lang.coderules.structure.LateExpressionItem" flags="ng" index="HKQnh">
<child id="6856711987714624233" name="code" index="HKQng" />
</concept>
<concept id="6533016889632449861" name="jetbrains.mps.lang.coderules.structure.QueryParameter" flags="ng" index="KwDlU" />
<concept id="1204249894870288679" name="jetbrains.mps.lang.coderules.structure.RequireAllStatement" flags="ng" index="Oftf1">
<child id="1204249894870289978" name="nodes" index="Oftjs" />
</concept>
@ -7393,14 +7383,6 @@
</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" />
<ref role="KG3u5" to="tj24:5EDW3XDYNPr" resolve="CheckQuery" />
@ -7414,8 +7396,15 @@
<node concept="3Aqt3T" id="5Eb7bDWO9lG" role="3I6s78">
<ref role="3AqCNq" node="4dPZ2m2jAgt" resolve="recoverAll" />
<node concept="37jhX" id="5HLeEcf2UoA" role="3AunhB">
<node concept="2_cIyK" id="5fMWD6HQq5e" role="37jj2">
<ref role="2_cIwb" node="5fMWD6HFjux" resolve="typesUpdateFun" />
<node concept="1nq8_$" id="5EDW3XEGq$3" role="37jj2">
<node concept="37jhX" id="5EDW3XEGq$2" role="1nq8_t">
<node concept="2OqwBi" id="5EDW3XEGqOy" role="37jj2">
<node concept="KwDlU" id="5EDW3XEGq$1" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEGr1t" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XDYOgY" resolve="getTypesCollector" />
</node>
</node>
</node>
</node>
</node>
</node>
@ -7427,10 +7416,6 @@
</node>
</node>
</node>
<node concept="10M0yZ" id="4RzhaQIJMWS" role="2_lZgo">
<ref role="3cqZAo" to="tj24:4t7Xo7inNvw" resolve="TYPECHECK" />
<ref role="1PxDUh" to="tj24:4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
</node>
<node concept="AVZre" id="48ZGLP8pG4t">
<property role="TrG5h" value="subsumption" />

View File

@ -48,9 +48,6 @@
<concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
<reference id="1144433194310" name="classConcept" index="1Pybhc" />
</concept>
<concept id="1070533707846" name="jetbrains.mps.baseLanguage.structure.StaticFieldReference" flags="nn" index="10M0yZ">
<reference id="1144433057691" name="classifier" index="1PxDUh" />
</concept>
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
<concept id="1068390468198" name="jetbrains.mps.baseLanguage.structure.ClassConcept" flags="ig" index="312cEu" />
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
@ -241,7 +238,6 @@
<language id="c4803b19-6d89-4a3b-bf82-390769514add" name="jetbrains.mps.lang.coderules">
<concept id="7871500063866331595" name="jetbrains.mps.lang.coderules.structure.Query" flags="ng" index="92CTh">
<child id="7871500063866331596" name="queryStage" index="92CTm" />
<child id="3026409000513569515" name="queryKind" index="2_lZgo" />
</concept>
<concept id="6928531011217292466" name="jetbrains.mps.lang.coderules.structure.IsfreeVariableConstraint" flags="ng" index="2aLmEc" />
<concept id="6928531011217258898" name="jetbrains.mps.lang.coderules.structure.LogicVariableConstraint" flags="ng" index="2aLIYG">
@ -364,10 +360,6 @@
</node>
</node>
</node>
<node concept="10M0yZ" id="78H58oerHZ5" role="2_lZgo">
<ref role="3cqZAo" to="fjx4:4t7Xo7inNvw" resolve="CHECK" />
<ref role="1PxDUh" to="fjx4:4t7Xo7inNgi" resolve="ControlflowQueryKind" />
</node>
</node>
<node concept="AVZre" id="78H58oerI5G">
<property role="TrG5h" value="Reachability" />

View File

@ -119,9 +119,6 @@
<child id="1081256993305" name="classType" index="2ZW6by" />
<child id="1081256993304" name="leftExpression" index="2ZW6bz" />
</concept>
<concept id="1070533707846" name="jetbrains.mps.baseLanguage.structure.StaticFieldReference" flags="nn" index="10M0yZ">
<reference id="1144433057691" name="classifier" index="1PxDUh" />
</concept>
<concept id="1070533982221" name="jetbrains.mps.baseLanguage.structure.ShortType" flags="in" index="10N3zO" />
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
<concept id="1070534370425" name="jetbrains.mps.baseLanguage.structure.IntegerType" flags="in" index="10Oyi0" />
@ -471,7 +468,6 @@
</concept>
<concept id="1171407110247" name="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" flags="nn" index="2Xjw5R" />
<concept id="1171500988903" name="jetbrains.mps.lang.smodel.structure.Node_GetChildrenOperation" flags="nn" index="32TBzR" />
<concept id="6677504323281689838" name="jetbrains.mps.lang.smodel.structure.SConceptType" flags="in" index="3bZ5Sz" />
<concept id="1139613262185" name="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" flags="nn" index="1mfA1w" />
<concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
<child id="1177027386292" name="conceptArgument" index="cj9EA" />
@ -651,8 +647,6 @@
</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">
<child id="1980609059169917850" name="origin" index="9KHbC" />
@ -695,12 +689,6 @@
<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" />
@ -709,6 +697,7 @@
<concept id="6856711987714624232" name="jetbrains.mps.lang.coderules.structure.LateExpressionItem" flags="ng" index="HKQnh">
<child id="6856711987714624233" name="code" index="HKQng" />
</concept>
<concept id="6533016889632449861" name="jetbrains.mps.lang.coderules.structure.QueryParameter" flags="ng" index="KwDlU" />
<concept id="5042557354438383712" name="jetbrains.mps.lang.coderules.structure.TermListType" flags="ig" index="VbTHi" />
<concept id="2381360340662937504" name="jetbrains.mps.lang.coderules.structure.TermType" flags="ig" index="32pEOW" />
<concept id="6097203247139556923" name="jetbrains.mps.lang.coderules.structure.CallMacroTemplate" flags="ng" index="3hwh0R">
@ -32449,14 +32438,6 @@
<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" />
<ref role="KG3u5" to="tj24:5EDW3XDYNPr" resolve="CheckQuery" />
@ -32481,12 +32462,23 @@
<ref role="3AqCNq" node="34$A1MfabR$" resolve="checkAll" />
</node>
</node>
</node>
</node>
<node concept="3Aq9E8" id="5EDW3XEGoAR" role="3xSepj">
<node concept="3I6sU6" id="5EDW3XEGoAS" role="3Ip0Jz">
<node concept="3I6s7M" id="12QmIoyIWn9" role="3I6sU7">
<node concept="3Aqt3T" id="12QmIoyIWn7" role="3I6s78">
<ref role="3AqCNq" node="20Zoq4kTOFb" resolve="recoverAll" />
<node concept="37jhX" id="5HLeEcf2UrN" role="3AunhB">
<node concept="2_cIyK" id="5fMWD6HQq5e" role="37jj2">
<ref role="2_cIwb" node="5fMWD6HFjux" resolve="typeCollector" />
<node concept="1nq8_$" id="5EDW3XEGoBn" role="37jj2">
<node concept="37jhX" id="5EDW3XEGoBm" role="1nq8_t">
<node concept="2OqwBi" id="5EDW3XEGoRQ" role="37jj2">
<node concept="KwDlU" id="5EDW3XEGoBl" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEGp0x" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XDYOgY" resolve="getTypesCollector" />
</node>
</node>
</node>
</node>
</node>
</node>
@ -32499,22 +32491,10 @@
<node concept="3clFbH" id="6OXbTD$ftqD" role="3cqZAp" />
</node>
</node>
<node concept="10M0yZ" id="4RzhaQIJMWU" role="2_lZgo">
<ref role="3cqZAo" to="tj24:4t7Xo7inNvw" resolve="TYPECHECK" />
<ref role="1PxDUh" to="tj24:4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
</node>
<node concept="92CTh" id="6OXbTD$ftrf">
<property role="TrG5h" value="ConvertsTo" />
<property role="3GE5qa" value="query" />
<node concept="2_cOLj" id="2BZXJecOMap" role="2_cLD1">
<property role="TrG5h" value="from" />
<node concept="3Tqbb2" id="2BZXJecRAg9" role="2_9F96" />
</node>
<node concept="2_cOLj" id="2BZXJecOMba" role="2_cLD1">
<property role="TrG5h" value="to" />
<node concept="3Tqbb2" id="2BZXJecRAgb" role="2_9F96" />
</node>
<node concept="2bWyPT" id="6OXbTD$fttw" role="92CTm">
<property role="TrG5h" value="subtypeOf" />
<ref role="KG3u5" to="tj24:5EDW3XDYNS7" resolve="ConvertQuery" />
@ -32539,22 +32519,32 @@
<node concept="a7P8L" id="6OXbTD$fttL" role="3jbY8V">
<ref role="a7OzE" node="6OXbTD$fttX" resolve="A" />
</node>
<node concept="2_cIyK" id="5EDW3XEeTty" role="3jbY8P">
<ref role="2_cIwb" node="2BZXJecOMap" resolve="from" />
<node concept="2OqwBi" id="5EDW3XEGo97" role="3jbY8P">
<node concept="KwDlU" id="5EDW3XEGo0R" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEGoh4" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XDYObD" resolve="getFrom" />
</node>
</node>
</node>
</node>
<node concept="3I6s7M" id="6OXbTD$fttN" role="3I6sU7">
<node concept="3jbYBd" id="5itBwMb5r7x" role="3I6s78">
<ref role="3jbY9l" node="5itBwMau8m1" resolve="lift" />
<node concept="2_cIyK" id="2BZXJecXiT4" role="3jbY8P">
<ref role="2_cIwb" node="2BZXJecOMba" resolve="to" />
<node concept="2OqwBi" id="5EDW3XEGosJ" role="3jbY8P">
<node concept="KwDlU" id="5EDW3XEGokv" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEGo_8" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XDYOe6" resolve="getTo" />
</node>
</node>
<node concept="a7P8L" id="6OXbTD$fttP" role="3jbY8V">
<ref role="a7OzE" node="6OXbTD$fttY" resolve="B" />
</node>
</node>
</node>
</node>
</node>
<node concept="3Aq9E8" id="5EDW3XEGoiV" role="3xSepj">
<node concept="3I6sU6" id="5EDW3XEGoiW" role="3Ip0Jz">
<node concept="3I6s7M" id="6OXbTD$fttR" role="3I6sU7">
<node concept="3Aqt3T" id="6OXbTD$fttS" role="3I6s78">
<ref role="3AqCNq" node="3Qp4N06bUPu" resolve="convertsTo" />
@ -32573,10 +32563,6 @@
</node>
</node>
</node>
<node concept="10M0yZ" id="4RzhaQIJMWZ" role="2_lZgo">
<ref role="3cqZAo" to="tj24:4t7Xo7inO_s" resolve="CONVERT" />
<ref role="1PxDUh" to="tj24:4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
</node>
<node concept="AVZre" id="35YJGAK4DLL">
<property role="3GE5qa" value="rule.relation" />
@ -38324,8 +38310,11 @@
<node concept="3I6s7M" id="7Bx7XgEggnx" role="3I6sU7">
<node concept="3jbYBd" id="5itBwMb5r7y" role="3I6s78">
<ref role="3jbY9l" node="5itBwMau8m1" resolve="lift" />
<node concept="2_cIyK" id="7Bx7XgEggnG" role="3jbY8P">
<ref role="2_cIwb" node="7Bx7XgEggkf" resolve="source" />
<node concept="2OqwBi" id="5EDW3XEEM0G" role="3jbY8P">
<node concept="KwDlU" id="5EDW3XEELSs" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEEM95" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XDYNZD" resolve="getSource" />
</node>
</node>
<node concept="a7P8L" id="7Bx7XgEggnB" role="3jbY8V">
<ref role="a7OzE" node="7Bx7XgEggn8" resolve="A" />
@ -38335,14 +38324,21 @@
<node concept="3I6s7M" id="7Bx7XgEggnV" role="3I6sU7">
<node concept="3jbYBd" id="5itBwMb5r7z" role="3I6s78">
<ref role="3jbY9l" node="5itBwMau8m1" resolve="lift" />
<node concept="2_cIyK" id="7Bx7XgEggoa" role="3jbY8P">
<ref role="2_cIwb" node="7Bx7XgEggkp" resolve="target" />
<node concept="2OqwBi" id="5EDW3XEEMhP" role="3jbY8P">
<node concept="KwDlU" id="5EDW3XEEM9_" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEEMqe" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XEtgZU" resolve="getTargetConcept" />
</node>
</node>
<node concept="a7P8L" id="7Bx7XgEggo5" role="3jbY8V">
<ref role="a7OzE" node="7Bx7XgEggne" resolve="B" />
</node>
</node>
</node>
</node>
</node>
<node concept="3Aq9E8" id="5EDW3XEEMyN" role="3xSepj">
<node concept="3I6sU6" id="5EDW3XEEMyO" role="3Ip0Jz">
<node concept="3I6s7M" id="7Bx7XgEggop" role="3I6sU7">
<node concept="3Aqt3T" id="7Bx7XgEggon" role="3I6s78">
<ref role="3AqCNq" node="3Qp4N06bUPu" resolve="convertsTo" />
@ -38365,11 +38361,22 @@
</node>
</node>
</node>
</node>
</node>
<node concept="3Aq9E8" id="5EDW3XEEMsw" role="3xSepj">
<node concept="3I6sU6" id="5EDW3XEEMsx" role="3Ip0Jz">
<node concept="3I6s7M" id="4pwDyRBIFn$" role="3I6sU7">
<node concept="3A8Hvi" id="4pwDyRBIFnu" role="3I6s78">
<node concept="37jhX" id="5HLeEcf2Usd" role="3A8wtg">
<node concept="2_cIyK" id="4pwDyRBIFnZ" role="37jj2">
<ref role="2_cIwb" node="4pwDyRBuLd4" resolve="result" />
<node concept="1nq8_$" id="5EDW3XEEMEb" role="37jj2">
<node concept="37jhX" id="5EDW3XEEMEa" role="1nq8_t">
<node concept="2OqwBi" id="5EDW3XEEMMS" role="37jj2">
<node concept="KwDlU" id="5EDW3XEEME9" role="2Oq$k0" />
<node concept="liA8E" id="5EDW3XEEMVl" role="2OqNvi">
<ref role="37wK5l" to="tj24:5EDW3XDYO56" resolve="getResult" />
</node>
</node>
</node>
</node>
</node>
<node concept="a7P8L" id="4pwDyRBIFo2" role="3A8w4Q">
@ -38384,25 +38391,6 @@
</node>
</node>
</node>
<node concept="2_cOLj" id="7Bx7XgEggkf" role="2_cLD1">
<property role="TrG5h" value="source" />
<node concept="3Tqbb2" id="7Bx7XgEggkm" role="2_9F96" />
</node>
<node concept="2_cOLj" id="7Bx7XgEggkp" role="2_cLD1">
<property role="TrG5h" value="target" />
<node concept="3bZ5Sz" id="7Bx7XgEggky" role="2_9F96" />
</node>
<node concept="2_cOLj" id="4pwDyRBuLd4" role="2_cLD1">
<property role="TrG5h" value="result" />
<node concept="3uibUv" id="4pwDyRBIFmY" role="2_9F96">
<ref role="3uigEE" to="bj13:~Logical" resolve="Logical" />
<node concept="3Tqbb2" id="4pwDyRBIFn7" role="11_B2D" />
</node>
</node>
<node concept="10M0yZ" id="7Bx7XgEggkQ" role="2_lZgo">
<ref role="3cqZAo" to="tj24:7Bx7XgEgdEp" resolve="COERCE" />
<ref role="1PxDUh" to="tj24:4t7Xo7inNgi" resolve="TypecheckingQueryKind" />
</node>
</node>
<node concept="AVZre" id="pupwRqIThK">
<property role="3GE5qa" value="rule.expression" />