Introduce checkpoint for typechecking "strut" templates

The templates that typechecking relies upon are generated
into the user model as synthetic constructs. These later
need to be discovered by the generator to establish
correct references.
This commit is contained in:
Fedor Isakov 2022-07-26 13:10:12 +02:00
parent 33b472f560
commit f9eb52a60f
4 changed files with 1767 additions and 420 deletions

View File

@ -0,0 +1,623 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:54f00056-a241-4baf-a6f7-ba1fb6ac89f4(jetbrains.mps.lang.typechecking.generator.genutil)">
<persistence version="9" />
<languages>
<use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="12" />
<use id="d7706f63-9be2-479c-a3da-ae92af1e64d5" name="jetbrains.mps.lang.generator.generationContext" version="2" />
<use id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel" version="19" />
<use id="760a0a8c-eabb-4521-8bfd-65db761a9ba3" name="jetbrains.mps.baseLanguage.logging" version="0" />
<use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="1" />
<use id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures" version="0" />
<devkit ref="a2eb3a43-fcc2-4200-80dc-c60110c4862d(jetbrains.mps.devkit.templates)" />
<devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
</languages>
<imports>
<import index="wq2x" ref="r:83137295-aa87-45e8-b0c0-ede2adf2a396(jetbrains.mps.lang.coderules.structure)" />
<import index="zfi7" ref="r:39840d4e-f61c-4452-88c5-75b1eb10e892(jetbrains.mps.lang.typechecking.structure)" />
<import index="osbg" ref="r:38071b08-e9ac-4ec1-a326-62b7897beb22(main@generator)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
</imports>
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1215693861676" name="jetbrains.mps.baseLanguage.structure.BaseAssignmentExpression" flags="nn" index="d038R">
<child id="1068498886297" name="rValue" index="37vLTx" />
<child id="1068498886295" name="lValue" index="37vLTJ" />
</concept>
<concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
<concept id="1465982738277781862" name="jetbrains.mps.baseLanguage.structure.PlaceholderMember" flags="nn" index="2tJIrI" />
<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" />
</concept>
<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="1081236700938" name="jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration" flags="ig" index="2YIFZL" />
<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">
<child id="1068431790190" name="initializer" index="33vP2m" />
</concept>
<concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
</concept>
<concept id="1068498886292" name="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" flags="ir" index="37vLTG" />
<concept id="1068498886294" name="jetbrains.mps.baseLanguage.structure.AssignmentExpression" flags="nn" index="37vLTI" />
<concept id="1225271283259" name="jetbrains.mps.baseLanguage.structure.NPEEqualsExpression" flags="nn" index="17R0WA" />
<concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
<child id="5680397130376446158" name="type" index="1tU5fm" />
</concept>
<concept id="1068580123132" name="jetbrains.mps.baseLanguage.structure.BaseMethodDeclaration" flags="ng" index="3clF44">
<child id="1068580123133" name="returnType" index="3clF45" />
<child id="1068580123134" name="parameter" index="3clF46" />
<child id="1068580123135" name="body" index="3clF47" />
</concept>
<concept id="1068580123152" name="jetbrains.mps.baseLanguage.structure.EqualsExpression" flags="nn" index="3clFbC" />
<concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
<child id="1068580123156" name="expression" index="3clFbG" />
</concept>
<concept id="1068580123159" name="jetbrains.mps.baseLanguage.structure.IfStatement" flags="nn" index="3clFbJ">
<child id="1068580123160" name="condition" index="3clFbw" />
<child id="1068580123161" name="ifTrue" index="3clFbx" />
</concept>
<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="1068581242864" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" flags="nn" index="3cpWs8">
<child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
</concept>
<concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
<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="1107461130800" name="jetbrains.mps.baseLanguage.structure.Classifier" flags="ng" index="3pOWGL">
<child id="5375687026011219971" name="member" index="jymVt" unordered="true" />
</concept>
<concept id="7812454656619025412" name="jetbrains.mps.baseLanguage.structure.LocalMethodCall" flags="nn" index="1rXfSq" />
<concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
<child id="1081773367579" name="rightExpression" index="3uHU7w" />
<child id="1081773367580" name="leftExpression" index="3uHU7B" />
</concept>
<concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
<child id="1178549979242" name="visibility" index="1B3o_S" />
</concept>
<concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
</language>
<language id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures">
<concept id="1199569711397" name="jetbrains.mps.baseLanguage.closures.structure.ClosureLiteral" flags="nn" index="1bVj0M">
<child id="1199569906740" name="parameter" index="1bW2Oz" />
<child id="1199569916463" name="body" index="1bW5cS" />
</concept>
</language>
<language id="d7706f63-9be2-479c-a3da-ae92af1e64d5" name="jetbrains.mps.lang.generator.generationContext">
<concept id="1216860049622" name="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabel" flags="nn" index="1iwH7d">
<reference id="1216860049623" name="label" index="1iwH7c" />
<child id="6851978633175404162" name="forModel" index="DUT31" />
</concept>
<concept id="1216860049633" name="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextType" flags="in" index="1iwH7U" />
<concept id="1217004708011" name="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetInputModel" flags="nn" index="1r8y6K" />
<concept id="1217026863835" name="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOriginalInputModel" flags="nn" index="1st3f0" />
</language>
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
<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="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" />
</concept>
<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">
<reference id="1145383142433" name="elementConcept" index="2I9WkF" />
</concept>
<concept id="1176109685393" name="jetbrains.mps.lang.smodel.structure.Model_RootsIncludingImportedOperation" flags="nn" index="3lApI0">
<child id="6750920497477143611" name="conceptArgument" index="3MHPDn" />
</concept>
<concept id="1140137987495" name="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" flags="nn" index="1PxgMI">
<property id="1238684351431" name="asCast" index="1BlNFB" />
</concept>
<concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2">
<reference id="1138405853777" name="concept" index="ehGHo" />
</concept>
<concept id="1138056022639" name="jetbrains.mps.lang.smodel.structure.SPropertyAccess" flags="nn" index="3TrcHB">
<reference id="1138056395725" name="property" index="3TsBF5" />
</concept>
<concept id="1138056282393" name="jetbrains.mps.lang.smodel.structure.SLinkListAccess" flags="nn" index="3Tsc0h">
<reference id="1138056546658" name="link" index="3TtcxE" />
</concept>
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
<language id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
<concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
<child id="1204796294226" name="closure" index="23t8la" />
</concept>
<concept id="1203518072036" name="jetbrains.mps.baseLanguage.collections.structure.SmartClosureParameterDeclaration" flags="ig" index="Rh6nW" />
<concept id="1165525191778" name="jetbrains.mps.baseLanguage.collections.structure.GetFirstOperation" flags="nn" index="1uHKPH" />
<concept id="1225727723840" name="jetbrains.mps.baseLanguage.collections.structure.FindFirstOperation" flags="nn" index="1z4cxt" />
</language>
</registry>
<node concept="312cEu" id="7mIqwW3we0j">
<property role="TrG5h" value="GeneratedSymbols" />
<node concept="2tJIrI" id="7mIqwW3we3L" role="jymVt" />
<node concept="2YIFZL" id="2GOEA2mESH" role="jymVt">
<property role="TrG5h" value="lookup_recoverType_default_list" />
<node concept="37vLTG" id="2GOEA2mESI" role="3clF46">
<property role="TrG5h" value="gencontext" />
<node concept="1iwH7U" id="2GOEA2mESJ" role="1tU5fm" />
</node>
<node concept="3Tqbb2" id="2GOEA2mESK" role="3clF45">
<ref role="ehGHo" to="wq2x:7eGEHDlgPKk" resolve="RulesList" />
</node>
<node concept="3Tm1VV" id="2GOEA2mESL" role="1B3o_S" />
<node concept="3clFbS" id="2GOEA2mESM" role="3clF47">
<node concept="3cpWs8" id="2GOEA2mESN" role="3cqZAp">
<node concept="3cpWsn" id="2GOEA2mESO" role="3cpWs9">
<property role="TrG5h" value="qs" />
<node concept="2I9FWS" id="2GOEA2mESP" role="1tU5fm">
<ref role="2I9WkF" to="zfi7:7lmP5gALJri" resolve="TypecheckingQueries" />
</node>
<node concept="2OqwBi" id="2GOEA2mESQ" role="33vP2m">
<node concept="2OqwBi" id="2GOEA2mESR" role="2Oq$k0">
<node concept="37vLTw" id="2GOEA2mESS" role="2Oq$k0">
<ref role="3cqZAo" node="2GOEA2mESI" resolve="gencontext" />
</node>
<node concept="1st3f0" id="2GOEA2mEST" role="2OqNvi" />
</node>
<node concept="3lApI0" id="2GOEA2mESU" role="2OqNvi">
<node concept="chp4Y" id="2GOEA2mESV" role="3MHPDn">
<ref role="cht4Q" to="zfi7:7lmP5gALJri" resolve="TypecheckingQueries" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="2GOEA2mESW" role="3cqZAp">
<node concept="3cpWsn" id="2GOEA2mESX" role="3cpWs9">
<property role="TrG5h" value="rl" />
<node concept="3Tqbb2" id="2GOEA2mESY" role="1tU5fm">
<ref role="ehGHo" to="wq2x:7eGEHDlgPKk" resolve="RulesList" />
</node>
<node concept="2OqwBi" id="2GOEA2mESZ" role="33vP2m">
<node concept="37vLTw" id="2GOEA2mET0" role="2Oq$k0">
<ref role="3cqZAo" node="2GOEA2mESI" resolve="gencontext" />
</node>
<node concept="1iwH7d" id="2GOEA2mET1" role="2OqNvi">
<ref role="1iwH7c" to="osbg:4LE1vMPhNy4" resolve="recoverTypeDefault" />
<node concept="2OqwBi" id="2GOEA2mET2" role="DUT31">
<node concept="2OqwBi" id="2GOEA2mET3" role="2Oq$k0">
<node concept="37vLTw" id="2GOEA2mET4" role="2Oq$k0">
<ref role="3cqZAo" node="2GOEA2mESO" resolve="qs" />
</node>
<node concept="1uHKPH" id="2GOEA2mET5" role="2OqNvi" />
</node>
<node concept="I4A8Y" id="2GOEA2mET6" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="2GOEA2mET7" role="3cqZAp">
<node concept="3clFbS" id="2GOEA2mET8" role="3clFbx">
<node concept="3clFbF" id="2GOEA2mET9" role="3cqZAp">
<node concept="37vLTI" id="2GOEA2mETa" role="3clFbG">
<node concept="2OqwBi" id="2GOEA2mETb" role="37vLTx">
<node concept="37vLTw" id="2GOEA2mETc" role="2Oq$k0">
<ref role="3cqZAo" node="2GOEA2mESI" resolve="gencontext" />
</node>
<node concept="1iwH7d" id="2GOEA2mETd" role="2OqNvi">
<ref role="1iwH7c" to="osbg:4LE1vMPhNy4" resolve="recoverTypeDefault" />
<node concept="2OqwBi" id="2GOEA2mETe" role="DUT31">
<node concept="37vLTw" id="2GOEA2mETf" role="2Oq$k0">
<ref role="3cqZAo" node="2GOEA2mESI" resolve="gencontext" />
</node>
<node concept="1r8y6K" id="2GOEA2mETg" role="2OqNvi" />
</node>
</node>
</node>
<node concept="37vLTw" id="2GOEA2mETh" role="37vLTJ">
<ref role="3cqZAo" node="2GOEA2mESX" resolve="rl" />
</node>
</node>
</node>
</node>
<node concept="3clFbC" id="2GOEA2mETi" role="3clFbw">
<node concept="10Nm6u" id="2GOEA2mETj" role="3uHU7w" />
<node concept="37vLTw" id="2GOEA2mETk" role="3uHU7B">
<ref role="3cqZAo" node="2GOEA2mESX" resolve="rl" />
</node>
</node>
</node>
<node concept="3clFbF" id="2GOEA2mFDq" role="3cqZAp">
<node concept="37vLTw" id="2GOEA2mFDo" role="3clFbG">
<ref role="3cqZAo" node="2GOEA2mESX" resolve="rl" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2GOEA2mGpi" role="jymVt" />
<node concept="2YIFZL" id="7mIqwW3we40" role="jymVt">
<property role="TrG5h" value="lookup_recoverType" />
<node concept="37vLTG" id="7mIqwW3we77" role="3clF46">
<property role="TrG5h" value="gencontext" />
<node concept="1iwH7U" id="7mIqwW3wfir" role="1tU5fm" />
</node>
<node concept="3Tqbb2" id="7mIqwW3we4C" role="3clF45">
<ref role="ehGHo" to="wq2x:6p0DfM0asBO" resolve="ConstraintDeclaration" />
</node>
<node concept="3Tm1VV" id="7mIqwW3we43" role="1B3o_S" />
<node concept="3clFbS" id="7mIqwW3we44" role="3clF47">
<node concept="3clFbF" id="7mIqwW3vUdU" role="3cqZAp">
<node concept="2OqwBi" id="7mIqwW45MO9" role="3clFbG">
<node concept="2OqwBi" id="7mIqwW45MOa" role="2Oq$k0">
<node concept="1rXfSq" id="2GOEA2mGNP" role="2Oq$k0">
<ref role="37wK5l" node="2GOEA2mESH" resolve="lookup_recoverType_default_list" />
<node concept="37vLTw" id="2GOEA2mH2Z" role="37wK5m">
<ref role="3cqZAo" node="7mIqwW3we77" resolve="gencontext" />
</node>
</node>
<node concept="3Tsc0h" id="7mIqwW45MOc" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:1HWyn8jEsaE" resolve="constraint" />
</node>
</node>
<node concept="1z4cxt" id="7mIqwW45MOd" role="2OqNvi">
<node concept="1bVj0M" id="7mIqwW45MOe" role="23t8la">
<node concept="3clFbS" id="7mIqwW45MOf" role="1bW5cS">
<node concept="3clFbF" id="7mIqwW45MOg" role="3cqZAp">
<node concept="17R0WA" id="7mIqwW45MOh" role="3clFbG">
<node concept="Xl_RD" id="7mIqwW45MOi" role="3uHU7w">
<property role="Xl_RC" value="__recoverType__" />
</node>
<node concept="2OqwBi" id="7mIqwW45MOj" role="3uHU7B">
<node concept="37vLTw" id="7mIqwW45MOk" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45MOm" resolve="it" />
</node>
<node concept="3TrcHB" id="7mIqwW45MOl" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="7mIqwW45MOm" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="7mIqwW45MOn" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="7mIqwW45MFy" role="jymVt" />
<node concept="2tJIrI" id="2GOEA2mESG" role="jymVt" />
<node concept="2YIFZL" id="7mIqwW3wnNP" role="jymVt">
<property role="TrG5h" value="lookup_recoverList" />
<node concept="37vLTG" id="7mIqwW3wnNQ" role="3clF46">
<property role="TrG5h" value="gencontext" />
<node concept="1iwH7U" id="7mIqwW3wnNR" role="1tU5fm" />
</node>
<node concept="3Tqbb2" id="7mIqwW3wnNS" role="3clF45">
<ref role="ehGHo" to="wq2x:6p0DfM0asBO" resolve="ConstraintDeclaration" />
</node>
<node concept="3Tm1VV" id="7mIqwW3wnNT" role="1B3o_S" />
<node concept="3clFbS" id="7mIqwW3wnNU" role="3clF47">
<node concept="3clFbF" id="7mIqwW3wnPn" role="3cqZAp">
<node concept="2OqwBi" id="7mIqwW45MJf" role="3clFbG">
<node concept="2OqwBi" id="7mIqwW45MJg" role="2Oq$k0">
<node concept="1rXfSq" id="2GOEA2mHgK" role="2Oq$k0">
<ref role="37wK5l" node="2GOEA2mESH" resolve="lookup_recoverType_default_list" />
<node concept="37vLTw" id="2GOEA2mHrf" role="37wK5m">
<ref role="3cqZAo" node="7mIqwW3wnNQ" resolve="gencontext" />
</node>
</node>
<node concept="3Tsc0h" id="7mIqwW45MJi" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:1HWyn8jEsaE" resolve="constraint" />
</node>
</node>
<node concept="1z4cxt" id="7mIqwW45MJj" role="2OqNvi">
<node concept="1bVj0M" id="7mIqwW45MJk" role="23t8la">
<node concept="3clFbS" id="7mIqwW45MJl" role="1bW5cS">
<node concept="3clFbF" id="7mIqwW45MJm" role="3cqZAp">
<node concept="17R0WA" id="7mIqwW45MJn" role="3clFbG">
<node concept="Xl_RD" id="7mIqwW45MJo" role="3uHU7w">
<property role="Xl_RC" value="__recoverList__" />
</node>
<node concept="2OqwBi" id="7mIqwW45MJp" role="3uHU7B">
<node concept="37vLTw" id="7mIqwW45MJq" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45MJs" resolve="it" />
</node>
<node concept="3TrcHB" id="7mIqwW45MJr" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="7mIqwW45MJs" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="7mIqwW45MJt" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="7mIqwW45NjP" role="jymVt" />
<node concept="2YIFZL" id="7mIqwW45N2I" role="jymVt">
<property role="TrG5h" value="lookup_assignType" />
<node concept="37vLTG" id="7mIqwW45N2J" role="3clF46">
<property role="TrG5h" value="gencontext" />
<node concept="1iwH7U" id="7mIqwW45N2K" role="1tU5fm" />
</node>
<node concept="3Tqbb2" id="7mIqwW45N2L" role="3clF45">
<ref role="ehGHo" to="wq2x:5itBwM6cWQh" resolve="ExpandMacroPrototype" />
</node>
<node concept="3Tm1VV" id="7mIqwW45N2M" role="1B3o_S" />
<node concept="3clFbS" id="7mIqwW45N2N" role="3clF47">
<node concept="3cpWs8" id="7mIqwW45N2O" role="3cqZAp">
<node concept="3cpWsn" id="7mIqwW45N2P" role="3cpWs9">
<property role="TrG5h" value="qs" />
<node concept="2I9FWS" id="7mIqwW45N2Q" role="1tU5fm">
<ref role="2I9WkF" to="zfi7:7lmP5gALJri" resolve="TypecheckingQueries" />
</node>
<node concept="2OqwBi" id="7mIqwW45N2R" role="33vP2m">
<node concept="2OqwBi" id="7mIqwW45N2S" role="2Oq$k0">
<node concept="37vLTw" id="7mIqwW45N2T" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45N2J" resolve="gencontext" />
</node>
<node concept="1st3f0" id="7mIqwW45N2U" role="2OqNvi" />
</node>
<node concept="3lApI0" id="7mIqwW45N2V" role="2OqNvi">
<node concept="chp4Y" id="7mIqwW45N2W" role="3MHPDn">
<ref role="cht4Q" to="zfi7:7lmP5gALJri" resolve="TypecheckingQueries" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="7mIqwW45N2X" role="3cqZAp">
<node concept="3cpWsn" id="7mIqwW45N2Y" role="3cpWs9">
<property role="TrG5h" value="mt" />
<node concept="3Tqbb2" id="7mIqwW45N2Z" role="1tU5fm">
<ref role="ehGHo" to="wq2x:1pPth$m5B4X" resolve="MacroTable" />
</node>
<node concept="2OqwBi" id="7mIqwW45N30" role="33vP2m">
<node concept="37vLTw" id="7mIqwW45N31" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45N2J" resolve="gencontext" />
</node>
<node concept="1iwH7d" id="7mIqwW45N32" role="2OqNvi">
<ref role="1iwH7c" to="osbg:4qGA5WCFyqy" resolve="expectType" />
<node concept="2OqwBi" id="7mIqwW45N33" role="DUT31">
<node concept="2OqwBi" id="7mIqwW45N34" role="2Oq$k0">
<node concept="37vLTw" id="7mIqwW45N35" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45N2P" resolve="qs" />
</node>
<node concept="1uHKPH" id="7mIqwW45N36" role="2OqNvi" />
</node>
<node concept="I4A8Y" id="7mIqwW45N37" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="7mIqwW45N38" role="3cqZAp">
<node concept="3clFbS" id="7mIqwW45N39" role="3clFbx">
<node concept="3clFbF" id="7mIqwW45N3a" role="3cqZAp">
<node concept="37vLTI" id="7mIqwW45N3b" role="3clFbG">
<node concept="2OqwBi" id="7mIqwW45N3c" role="37vLTx">
<node concept="37vLTw" id="7mIqwW45N3d" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45N2J" resolve="gencontext" />
</node>
<node concept="1iwH7d" id="7mIqwW45N3e" role="2OqNvi">
<ref role="1iwH7c" to="osbg:4qGA5WCFyqy" resolve="expectType" />
<node concept="2OqwBi" id="7mIqwW45N3f" role="DUT31">
<node concept="37vLTw" id="7mIqwW45N3g" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45N2J" resolve="gencontext" />
</node>
<node concept="1r8y6K" id="7mIqwW45N3h" role="2OqNvi" />
</node>
</node>
</node>
<node concept="37vLTw" id="7mIqwW45N3i" role="37vLTJ">
<ref role="3cqZAo" node="7mIqwW45N2Y" resolve="mt" />
</node>
</node>
</node>
</node>
<node concept="3clFbC" id="7mIqwW45N3j" role="3clFbw">
<node concept="10Nm6u" id="7mIqwW45N3k" role="3uHU7w" />
<node concept="37vLTw" id="7mIqwW45N3l" role="3uHU7B">
<ref role="3cqZAo" node="7mIqwW45N2Y" resolve="rl" />
</node>
</node>
</node>
<node concept="3clFbF" id="7mIqwW45N3m" role="3cqZAp">
<node concept="1PxgMI" id="7mIqwW45Q58" role="3clFbG">
<property role="1BlNFB" value="true" />
<node concept="chp4Y" id="7mIqwW45Qf7" role="3oSUPX">
<ref role="cht4Q" to="wq2x:5itBwM6cWQh" resolve="ExpandMacroPrototype" />
</node>
<node concept="2OqwBi" id="7mIqwW45N3n" role="1m5AlR">
<node concept="2OqwBi" id="7mIqwW45N3o" role="2Oq$k0">
<node concept="37vLTw" id="7mIqwW45N3p" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45N2Y" resolve="mt" />
</node>
<node concept="3Tsc0h" id="7mIqwW45N3q" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM6ukmz" resolve="prototype" />
</node>
</node>
<node concept="1z4cxt" id="7mIqwW45N3r" role="2OqNvi">
<node concept="1bVj0M" id="7mIqwW45N3s" role="23t8la">
<node concept="3clFbS" id="7mIqwW45N3t" role="1bW5cS">
<node concept="3clFbF" id="7mIqwW45N3u" role="3cqZAp">
<node concept="17R0WA" id="7mIqwW45N3v" role="3clFbG">
<node concept="Xl_RD" id="7mIqwW45N3w" role="3uHU7w">
<property role="Xl_RC" value="_assignType_" />
</node>
<node concept="2OqwBi" id="7mIqwW45N3x" role="3uHU7B">
<node concept="37vLTw" id="7mIqwW45N3y" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45N3$" resolve="it" />
</node>
<node concept="3TrcHB" id="7mIqwW45N3z" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="7mIqwW45N3$" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="7mIqwW45N3_" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="7mIqwW45MZj" role="jymVt" />
<node concept="2YIFZL" id="7mIqwW45Qoc" role="jymVt">
<property role="TrG5h" value="lookup_expectType" />
<node concept="37vLTG" id="7mIqwW45Qod" role="3clF46">
<property role="TrG5h" value="gencontext" />
<node concept="1iwH7U" id="7mIqwW45Qoe" role="1tU5fm" />
</node>
<node concept="3Tqbb2" id="7mIqwW45Qof" role="3clF45">
<ref role="ehGHo" to="wq2x:5itBwM6cWQh" resolve="ExpandMacroPrototype" />
</node>
<node concept="3Tm1VV" id="7mIqwW45Qog" role="1B3o_S" />
<node concept="3clFbS" id="7mIqwW45Qoh" role="3clF47">
<node concept="3cpWs8" id="7mIqwW45Qoi" role="3cqZAp">
<node concept="3cpWsn" id="7mIqwW45Qoj" role="3cpWs9">
<property role="TrG5h" value="qs" />
<node concept="2I9FWS" id="7mIqwW45Qok" role="1tU5fm">
<ref role="2I9WkF" to="zfi7:7lmP5gALJri" resolve="TypecheckingQueries" />
</node>
<node concept="2OqwBi" id="7mIqwW45Qol" role="33vP2m">
<node concept="2OqwBi" id="7mIqwW45Qom" role="2Oq$k0">
<node concept="37vLTw" id="7mIqwW45Qon" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45Qod" resolve="gencontext" />
</node>
<node concept="1st3f0" id="7mIqwW45Qoo" role="2OqNvi" />
</node>
<node concept="3lApI0" id="7mIqwW45Qop" role="2OqNvi">
<node concept="chp4Y" id="7mIqwW45Qoq" role="3MHPDn">
<ref role="cht4Q" to="zfi7:7lmP5gALJri" resolve="TypecheckingQueries" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="7mIqwW45Qor" role="3cqZAp">
<node concept="3cpWsn" id="7mIqwW45Qos" role="3cpWs9">
<property role="TrG5h" value="mt" />
<node concept="3Tqbb2" id="7mIqwW45Qot" role="1tU5fm">
<ref role="ehGHo" to="wq2x:1pPth$m5B4X" resolve="MacroTable" />
</node>
<node concept="2OqwBi" id="7mIqwW45Qou" role="33vP2m">
<node concept="37vLTw" id="7mIqwW45Qov" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45Qod" resolve="gencontext" />
</node>
<node concept="1iwH7d" id="7mIqwW45Qow" role="2OqNvi">
<ref role="1iwH7c" to="osbg:4qGA5WCFyqy" resolve="expectType" />
<node concept="2OqwBi" id="7mIqwW45Qox" role="DUT31">
<node concept="2OqwBi" id="7mIqwW45Qoy" role="2Oq$k0">
<node concept="37vLTw" id="7mIqwW45Qoz" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45Qoj" resolve="qs" />
</node>
<node concept="1uHKPH" id="7mIqwW45Qo$" role="2OqNvi" />
</node>
<node concept="I4A8Y" id="7mIqwW45Qo_" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="7mIqwW45QoA" role="3cqZAp">
<node concept="3clFbS" id="7mIqwW45QoB" role="3clFbx">
<node concept="3clFbF" id="7mIqwW45QoC" role="3cqZAp">
<node concept="37vLTI" id="7mIqwW45QoD" role="3clFbG">
<node concept="2OqwBi" id="7mIqwW45QoE" role="37vLTx">
<node concept="37vLTw" id="7mIqwW45QoF" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45Qod" resolve="gencontext" />
</node>
<node concept="1iwH7d" id="7mIqwW45QoG" role="2OqNvi">
<ref role="1iwH7c" to="osbg:4qGA5WCFyqy" resolve="expectType" />
<node concept="2OqwBi" id="7mIqwW45QoH" role="DUT31">
<node concept="37vLTw" id="7mIqwW45QoI" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45Qod" resolve="gencontext" />
</node>
<node concept="1r8y6K" id="7mIqwW45QoJ" role="2OqNvi" />
</node>
</node>
</node>
<node concept="37vLTw" id="7mIqwW45QoK" role="37vLTJ">
<ref role="3cqZAo" node="7mIqwW45Qos" resolve="mt" />
</node>
</node>
</node>
</node>
<node concept="3clFbC" id="7mIqwW45QoL" role="3clFbw">
<node concept="10Nm6u" id="7mIqwW45QoM" role="3uHU7w" />
<node concept="37vLTw" id="7mIqwW45QoN" role="3uHU7B">
<ref role="3cqZAo" node="7mIqwW45Qos" resolve="mt" />
</node>
</node>
</node>
<node concept="3clFbF" id="7mIqwW45QoO" role="3cqZAp">
<node concept="1PxgMI" id="7mIqwW45QoP" role="3clFbG">
<property role="1BlNFB" value="true" />
<node concept="chp4Y" id="7mIqwW45QoQ" role="3oSUPX">
<ref role="cht4Q" to="wq2x:5itBwM6cWQh" resolve="ExpandMacroPrototype" />
</node>
<node concept="2OqwBi" id="7mIqwW45QoR" role="1m5AlR">
<node concept="2OqwBi" id="7mIqwW45QoS" role="2Oq$k0">
<node concept="37vLTw" id="7mIqwW45QoT" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45Qos" resolve="mt" />
</node>
<node concept="3Tsc0h" id="7mIqwW45QoU" role="2OqNvi">
<ref role="3TtcxE" to="wq2x:5itBwM6ukmz" resolve="prototype" />
</node>
</node>
<node concept="1z4cxt" id="7mIqwW45QoV" role="2OqNvi">
<node concept="1bVj0M" id="7mIqwW45QoW" role="23t8la">
<node concept="3clFbS" id="7mIqwW45QoX" role="1bW5cS">
<node concept="3clFbF" id="7mIqwW45QoY" role="3cqZAp">
<node concept="17R0WA" id="7mIqwW45QoZ" role="3clFbG">
<node concept="Xl_RD" id="7mIqwW45Qp0" role="3uHU7w">
<property role="Xl_RC" value="_expectType_" />
</node>
<node concept="2OqwBi" id="7mIqwW45Qp1" role="3uHU7B">
<node concept="37vLTw" id="7mIqwW45Qp2" role="2Oq$k0">
<ref role="3cqZAo" node="7mIqwW45Qp4" resolve="it" />
</node>
<node concept="3TrcHB" id="7mIqwW45Qp3" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="7mIqwW45Qp4" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="7mIqwW45Qp5" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="7mIqwW45Qob" role="jymVt" />
<node concept="3Tm1VV" id="7mIqwW3we0k" role="1B3o_S" />
</node>
</model>

View File

@ -66,7 +66,6 @@
<module reference="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" version="0" />
<module reference="fd392034-7849-419d-9071-12563d152375(jetbrains.mps.baseLanguage.closures)" version="0" />
<module reference="83888646-71ce-4f1c-9c53-c54016f6ad4f(jetbrains.mps.baseLanguage.collections)" version="0" />
<module reference="c7d5b9dd-a05f-4be2-bc73-f2e16994cc67(jetbrains.mps.baseLanguage.lightweightdsl)" version="0" />
<module reference="52b81ac7-93fd-4e9e-b972-4995882da6d4(jetbrains.mps.baseLanguage.references.runtime)" version="0" />
<module reference="e39e4a59-8cb6-498e-860e-8fa8361c0d90(jetbrains.mps.baseLanguage.scopes)" version="0" />
<module reference="f97d84b2-8bad-4fdd-8ede-da17b3eacf4c(jetbrains.mps.coderules)" version="0" />
@ -111,6 +110,8 @@
<dependency reexport="false">bfbdd672-7ff5-403f-af4f-16da5226f34c(jetbrains.mps.findUsages.runtime)</dependency>
<dependency reexport="false">35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)</dependency>
<dependency reexport="false">3a13115c-633c-4c5c-bbcc-75c4219e9555(jetbrains.mps.lang.quotation)</dependency>
<dependency reexport="false">ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)</dependency>
<dependency reexport="false">c4803b19-6d89-4a3b-bf82-390769514add(jetbrains.mps.lang.coderules)</dependency>
</dependencies>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="11" />
@ -134,6 +135,7 @@
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="2" />
<language slang="l:f4ad079d-bc71-4ffb-9600-9328705cf998:jetbrains.mps.lang.descriptor" version="0" />
<language slang="l:18bc6592-03a6-4e29-a83a-7ff23bde13ba:jetbrains.mps.lang.editor" version="14" />
<language slang="l:d7706f63-9be2-479c-a3da-ae92af1e64d5:jetbrains.mps.lang.generator.generationContext" version="2" />
<language slang="l:d7a92d38-f7db-40d0-8431-763b0c3c9f20:jetbrains.mps.lang.intentions" version="1" />
<language slang="l:90746344-04fd-4286-97d5-b46ae6a81709:jetbrains.mps.lang.migration" version="2" />
<language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />

View File

@ -10,16 +10,26 @@
</imports>
<registry>
<language id="7ab1a6fa-0a11-4b95-9e48-75f363d6cb00" name="jetbrains.mps.lang.generator.plan">
<concept id="869728027904920839" name="jetbrains.mps.lang.generator.plan.structure.CheckpointSynchronization" flags="ng" index="26qawf">
<child id="3750601816087335480" name="checkpoint" index="3pRG92" />
</concept>
<concept id="3705377275350227759" name="jetbrains.mps.lang.generator.plan.structure.IncludePlan" flags="ng" index="NozSJ">
<reference id="3705377275350227762" name="plan" index="NozSM" />
</concept>
<concept id="1820634577908471803" name="jetbrains.mps.lang.generator.plan.structure.Plan" flags="ng" index="2VgMpV">
<child id="1820634577908471815" name="steps" index="2VgMA7" />
</concept>
<concept id="1820634577908471809" name="jetbrains.mps.lang.generator.plan.structure.Checkpoint" flags="ng" index="2VgMA1">
<child id="3750601816081740498" name="cpSpec" index="3ps6aC" />
</concept>
<concept id="1820634577908471810" name="jetbrains.mps.lang.generator.plan.structure.Transform" flags="ng" index="2VgMA2">
<property id="2209292798354050154" name="individualStepPerGenerator" index="1s431M" />
<child id="2944629966652439181" name="languages" index="1t_9vn" />
</concept>
<concept id="6257322641293267918" name="jetbrains.mps.lang.generator.plan.structure.CheckpointDeclaration" flags="ng" index="19BiC4" />
<concept id="3750601816081740541" name="jetbrains.mps.lang.generator.plan.structure.DeclaredCheckpointSpec" flags="ng" index="3ps6a7">
<reference id="3750601816081740544" name="cpDecl" index="3ps6dU" />
</concept>
</language>
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
<concept id="3542851458883438784" name="jetbrains.mps.lang.smodel.structure.LanguageId" flags="nn" index="2V$Bhx">
@ -35,6 +45,9 @@
</registry>
<node concept="2VgMpV" id="C1f6iDJrPS">
<property role="TrG5h" value="TypesAspect" />
<node concept="19BiC4" id="4APe_wL1VPG" role="2VgMA7">
<property role="TrG5h" value="TypecheckingSymbols" />
</node>
<node concept="2VgMA2" id="C1f6iDORpM" role="2VgMA7">
<property role="1s431M" value="true" />
<node concept="2V$Bhx" id="C1f6iDORpL" role="1t_9vn">
@ -56,6 +69,16 @@
<property role="2V$B1Q" value="jetbrains.mps.lang.typechecking" />
</node>
</node>
<node concept="2VgMA1" id="4APe_wL6Vf4" role="2VgMA7">
<node concept="3ps6a7" id="4APe_wL6Vfs" role="3ps6aC">
<ref role="3ps6dU" node="4APe_wL1VPG" resolve="FOO" />
</node>
</node>
<node concept="26qawf" id="4APe_wL9AqS" role="2VgMA7">
<node concept="3ps6a7" id="4APe_wL9Ari" role="3pRG92">
<ref role="3ps6dU" node="4APe_wL1VPG" resolve="FOO" />
</node>
</node>
<node concept="2VgMA2" id="sL9MTQwV_n" role="2VgMA7">
<property role="1s431M" value="true" />
<node concept="2V$Bhx" id="sL9MTQwV_p" role="1t_9vn">