Commit e559979c authored by André Pacak's avatar André Pacak

working implementation of the fo recursive type checker in IncA

parent b6c78e8b
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -483,6 +483,9 @@
<node concept="3F0ifn" id="6XRTB8NsWvU" role="3EZMnx">
<property role="3F0ifm" value="let" />
</node>
<node concept="3F0ifn" id="53cwso4QMwL" role="3EZMnx">
<property role="3F0ifm" value="type" />
</node>
<node concept="3F0A7n" id="6XRTB8NsWvV" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
......
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="7ee9xvnhord90wp8apfuhkscgg6hmao">
<product version="3" modelHash="-bjk00j6la7rx21orrn5sqk55lcxqops">
<files names="Add_Editor.java:Add_EditorBuilder_a.java:Anno_Editor.java:Anno_EditorBuilder_a.java:App_Editor.java:App_EditorBuilder_a.java:Case_Editor.java:Case_EditorBuilder_a.java:EditorAspectDescriptorImpl.java:Fun_Editor.java:Fun_EditorBuilder_a.java:GrammarActionsDescriptor.java:GrammarCellsSubstituteMenu_Add.java:GrammarCellsSubstituteMenu_Anno.java:GrammarCellsSubstituteMenu_App.java:GrammarCellsSubstituteMenu_Case.java:GrammarCellsSubstituteMenu_Fun.java:GrammarCellsSubstituteMenu_IModuleElem.java:GrammarCellsSubstituteMenu_Lam.java:GrammarCellsSubstituteMenu_Let.java:GrammarCellsSubstituteMenu_LetType.java:GrammarCellsSubstituteMenu_Match.java:GrammarCellsSubstituteMenu_Module.java:GrammarCellsSubstituteMenu_ModuleElemDef.java:GrammarCellsSubstituteMenu_ModuleElemEmpty.java:GrammarCellsSubstituteMenu_ModuleImport.java:GrammarCellsSubstituteMenu_Mult.java:GrammarCellsSubstituteMenu_Nat.java:GrammarCellsSubstituteMenu_ParensTerm.java:GrammarCellsSubstituteMenu_ParensType.java:GrammarCellsSubstituteMenu_Succ.java:GrammarCellsSubstituteMenu_Tag.java:GrammarCellsSubstituteMenu_Term.java:GrammarCellsSubstituteMenu_Type.java:GrammarCellsSubstituteMenu_TypeVar.java:GrammarCellsSubstituteMenu_UnitTerm.java:GrammarCellsSubstituteMenu_UnitType.java:GrammarCellsSubstituteMenu_Var.java:GrammarCellsSubstituteMenu_VariantType.java:GrammarCellsSubstituteMenu_VariantTypeEntry.java:GrammarCellsSubstituteMenu_Zero.java:Lam_Editor.java:Lam_EditorBuilder_a.java:LetType_Editor.java:LetType_EditorBuilder_a.java:Let_Editor.java:Let_EditorBuilder_a.java:Match_Editor.java:Match_EditorBuilder_a.java:ModuleElemDef_Editor.java:ModuleElemDef_EditorBuilder_a.java:ModuleElemEmpty_SubstituteMenu.java:ModuleImport_Editor.java:ModuleImport_EditorBuilder_a.java:Module_Editor.java:Module_EditorBuilder_a.java:Mult_Editor.java:Mult_EditorBuilder_a.java:Nat_Editor.java:Nat_EditorBuilder_a.java:ParensTerm_Editor.java:ParensTerm_EditorBuilder_a.java:ParensType_Editor.java:ParensType_EditorBuilder_a.java:Succ_Editor.java:Succ_EditorBuilder_a.java:Tag_Editor.java:Tag_EditorBuilder_a.java:TypeVar_Editor.java:TypeVar_EditorBuilder_a.java:UnitTerm_Editor.java:UnitTerm_EditorBuilder_a.java:UnitType_Editor.java:UnitType_EditorBuilder_a.java:Var_Editor.java:Var_EditorBuilder_a.java:VariantTypeEntry_Editor.java:VariantTypeEntry_EditorBuilder_a.java:VariantType_Editor.java:VariantType_EditorBuilder_a.java:Zero_Editor.java:Zero_EditorBuilder_a.java:template_GrammarCellsSideTransformationsMenu.java" />
</product>
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="-aiary2y1quar5v7z08gm245a1yjju6j">
<product version="3" modelHash="ivitd70j9k9rauzm8i8gwx83kt6nud">
<files names="Language.java" />
</product>
......@@ -72,9 +72,10 @@ import jetbrains.mps.smodel.action.SNodeFactoryOperations;
editorCell.addEditorCell(createCustomFactory_1());
editorCell.addEditorCell(createCustomFactory_3());
editorCell.addEditorCell(createCustomFactory_5());
editorCell.addEditorCell(createRefNode_0());
editorCell.addEditorCell(createCustomFactory_7());
editorCell.addEditorCell(createRefNode_0());
editorCell.addEditorCell(createCustomFactory_9());
editorCell.addEditorCell(createCustomFactory_11());
return editorCell;
}
private EditorCell createCustomFactory_0(final EditorContext editorContext, final SNode node) {
......@@ -144,7 +145,7 @@ import jetbrains.mps.smodel.action.SNodeFactoryOperations;
private EditorCell createCustomFactory_2(final EditorContext editorContext, final SNode node) {
final EditorCell cell = createProperty_0();
final EditorCell cell = createConstant_1();
EditorCell editorCell = new _FunctionTypes._return_P0_E0<EditorCell>() {
public EditorCell invoke() {
cell.setAction(CellActionType.DELETE, new CellActionWithReadAccess() {
......@@ -199,6 +200,70 @@ import jetbrains.mps.smodel.action.SNodeFactoryOperations;
private EditorCell createCustomFactory_3() {
return createCustomFactory_2(getEditorContext(), myNode);
}
private EditorCell createConstant_1() {
EditorCell_Constant editorCell = new EditorCell_Constant(getEditorContext(), myNode, "type");
editorCell.setCellId("Constant_wsw04b_a1a");
editorCell.setDefaultText("");
return editorCell;
}
private EditorCell createCustomFactory_4(final EditorContext editorContext, final SNode node) {
final EditorCell cell = createProperty_0();
EditorCell editorCell = new _FunctionTypes._return_P0_E0<EditorCell>() {
public EditorCell invoke() {
cell.setAction(CellActionType.DELETE, new CellActionWithReadAccess() {
public void execute(EditorContext editorContext) {
SNode unwrapped = SNodeOperations.replaceWithAnother(node, SLinkOperations.getTarget(node, MetaAdapterFactory.getContainmentLink(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x6f77e6723373c7bfL, 0x6f77e6723373c7d3L, "ty")));
boolean caretLeft = true;
if (caretLeft) {
SelectionUtil.selectLabelCellAnSetCaret(editorContext, unwrapped, SelectionManager.FIRST_CELL, 0);
} else {
SelectionUtil.selectLabelCellAnSetCaret(editorContext, unwrapped, SelectionManager.LAST_CELL, -1);
}
}
@Override
public boolean canExecute_inReadAction(EditorContext editorContext) {
SNode replacement = SLinkOperations.getTarget(node, MetaAdapterFactory.getContainmentLink(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x6f77e6723373c7bfL, 0x6f77e6723373c7d3L, "ty"));
SContainmentLink containmentLink = node.getContainmentLink();
if (containmentLink == null) {
return true;
}
SAbstractConcept expectedConcept = containmentLink.getTargetConcept();
return expectedConcept == null || SConceptOperations.isSubConceptOf(SNodeOperations.asSConcept(SNodeOperations.getConcept(replacement)), SNodeOperations.asSConcept(expectedConcept));
}
});
cell.setAction(CellActionType.BACKSPACE, new CellActionWithReadAccess() {
public void execute(EditorContext editorContext) {
SNode unwrapped = SNodeOperations.replaceWithAnother(node, SLinkOperations.getTarget(node, MetaAdapterFactory.getContainmentLink(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x6f77e6723373c7bfL, 0x6f77e6723373c7d3L, "ty")));
boolean caretLeft = true;
if (caretLeft) {
SelectionUtil.selectLabelCellAnSetCaret(editorContext, unwrapped, SelectionManager.FIRST_CELL, 0);
} else {
SelectionUtil.selectLabelCellAnSetCaret(editorContext, unwrapped, SelectionManager.LAST_CELL, -1);
}
}
@Override
public boolean canExecute_inReadAction(EditorContext editorContext) {
SNode replacement = SLinkOperations.getTarget(node, MetaAdapterFactory.getContainmentLink(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x6f77e6723373c7bfL, 0x6f77e6723373c7d3L, "ty"));
SContainmentLink containmentLink = node.getContainmentLink();
if (containmentLink == null) {
return true;
}
SAbstractConcept expectedConcept = containmentLink.getTargetConcept();
return expectedConcept == null || SConceptOperations.isSubConceptOf(SNodeOperations.asSConcept(SNodeOperations.getConcept(replacement)), SNodeOperations.asSConcept(expectedConcept));
}
});
return cell;
}
}.invoke();
return editorCell;
}
private EditorCell createCustomFactory_5() {
return createCustomFactory_4(getEditorContext(), myNode);
}
private EditorCell createProperty_0() {
getCellFactory().pushCellContext();
try {
......@@ -226,10 +291,10 @@ import jetbrains.mps.smodel.action.SNodeFactoryOperations;
getCellFactory().popCellContext();
}
}
private EditorCell createCustomFactory_4(final EditorContext editorContext, final SNode node) {
private EditorCell createCustomFactory_6(final EditorContext editorContext, final SNode node) {
final EditorCell cell = createConstant_1();
final EditorCell cell = createConstant_2();
EditorCell editorCell = new _FunctionTypes._return_P0_E0<EditorCell>() {
public EditorCell invoke() {
cell.setAction(CellActionType.DELETE, new CellActionWithReadAccess() {
......@@ -281,24 +346,24 @@ import jetbrains.mps.smodel.action.SNodeFactoryOperations;
}.invoke();
return editorCell;
}
private EditorCell createCustomFactory_5() {
return createCustomFactory_4(getEditorContext(), myNode);
private EditorCell createCustomFactory_7() {
return createCustomFactory_6(getEditorContext(), myNode);
}
private EditorCell createConstant_1() {
private EditorCell createConstant_2() {
EditorCell_Constant editorCell = new EditorCell_Constant(getEditorContext(), myNode, "=");
editorCell.setCellId("Constant_wsw04b_a2a");
editorCell.setCellId("Constant_wsw04b_a3a");
editorCell.setDefaultText("");
return editorCell;
}
private EditorCell createRefNode_0() {
SingleRoleCellProvider provider = new LetType_EditorBuilder_a.tySingleRoleHandler_wsw04b_d0(myNode, MetaAdapterFactory.getContainmentLink(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x6f77e6723373c7bfL, 0x6f77e6723373c7d3L, "ty"), getEditorContext());
SingleRoleCellProvider provider = new LetType_EditorBuilder_a.tySingleRoleHandler_wsw04b_e0(myNode, MetaAdapterFactory.getContainmentLink(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x6f77e6723373c7bfL, 0x6f77e6723373c7d3L, "ty"), getEditorContext());
return provider.createCell();
}
private static class tySingleRoleHandler_wsw04b_d0 extends SingleRoleCellProvider {
private static class tySingleRoleHandler_wsw04b_e0 extends SingleRoleCellProvider {
@NotNull
private SNode myNode;
public tySingleRoleHandler_wsw04b_d0(SNode ownerNode, SContainmentLink containmentLink, EditorContext context) {
public tySingleRoleHandler_wsw04b_e0(SNode ownerNode, SContainmentLink containmentLink, EditorContext context) {
super(containmentLink, context);
myNode = ownerNode;
}
......@@ -345,10 +410,10 @@ import jetbrains.mps.smodel.action.SNodeFactoryOperations;
return "<no ty>";
}
}
private EditorCell createCustomFactory_6(final EditorContext editorContext, final SNode node) {
private EditorCell createCustomFactory_8(final EditorContext editorContext, final SNode node) {
final EditorCell cell = createConstant_2();
final EditorCell cell = createConstant_3();
EditorCell editorCell = new _FunctionTypes._return_P0_E0<EditorCell>() {
public EditorCell invoke() {
cell.setAction(CellActionType.DELETE, new CellActionWithReadAccess() {
......@@ -400,16 +465,16 @@ import jetbrains.mps.smodel.action.SNodeFactoryOperations;
}.invoke();
return editorCell;
}
private EditorCell createCustomFactory_7() {
return createCustomFactory_6(getEditorContext(), myNode);
private EditorCell createCustomFactory_9() {
return createCustomFactory_8(getEditorContext(), myNode);
}
private EditorCell createConstant_2() {
private EditorCell createConstant_3() {
EditorCell_Constant editorCell = new EditorCell_Constant(getEditorContext(), myNode, "in");
editorCell.setCellId("Constant_wsw04b_a4a");
editorCell.setCellId("Constant_wsw04b_a5a");
editorCell.setDefaultText("");
return editorCell;
}
private EditorCell createCustomFactory_8(final EditorContext editorContext, final SNode node) {
private EditorCell createCustomFactory_10(final EditorContext editorContext, final SNode node) {
final EditorCell cell = createRefNode_1();
......@@ -482,18 +547,18 @@ import jetbrains.mps.smodel.action.SNodeFactoryOperations;
}.invoke();
return editorCell;
}
private EditorCell createCustomFactory_9() {
return createCustomFactory_8(getEditorContext(), myNode);
private EditorCell createCustomFactory_11() {
return createCustomFactory_10(getEditorContext(), myNode);
}
private EditorCell createRefNode_1() {
SingleRoleCellProvider provider = new LetType_EditorBuilder_a.tSingleRoleHandler_wsw04b_a5a(myNode, MetaAdapterFactory.getContainmentLink(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x6f77e6723373c7bfL, 0x6f77e6723373c7d7L, "t"), getEditorContext());
SingleRoleCellProvider provider = new LetType_EditorBuilder_a.tSingleRoleHandler_wsw04b_a6a(myNode, MetaAdapterFactory.getContainmentLink(0x83519d5ae8d840b1L, 0xb9587bbbda82ff24L, 0x6f77e6723373c7bfL, 0x6f77e6723373c7d7L, "t"), getEditorContext());
return provider.createCell();
}
private static class tSingleRoleHandler_wsw04b_a5a extends SingleRoleCellProvider {
private static class tSingleRoleHandler_wsw04b_a6a extends SingleRoleCellProvider {
@NotNull
private SNode myNode;
public tSingleRoleHandler_wsw04b_a5a(SNode ownerNode, SContainmentLink containmentLink, EditorContext context) {
public tSingleRoleHandler_wsw04b_a6a(SNode ownerNode, SContainmentLink containmentLink, EditorContext context) {
super(containmentLink, context);
myNode = ownerNode;
}
......
......@@ -13,17 +13,24 @@
<dependency reexport="false">cd2909da-ecb4-49dc-b176-33e5c619e516(org.inca.gp)</dependency>
<dependency reexport="false">83519d5a-e8d8-40b1-b958-7bbbda82ff24(FORecursiveTypes)</dependency>
<dependency reexport="false">7766a138-716a-422a-9c88-131459fb8d6a(org.inca.core.runtime)</dependency>
<dependency reexport="false">6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)</dependency>
<dependency reexport="false">63650c59-16c8-498a-99c8-005c7ee9515d(jetbrains.mps.lang.access)</dependency>
<dependency reexport="false">642f71f8-327a-425b-84f9-44ad58786d27(jetbrains.mps.lang.project.modules)</dependency>
</dependencies>
<languageVersions>
<language slang="l:83519d5a-e8d8-40b1-b958-7bbbda82ff24:FORecursiveTypes" version="0" />
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="8" />
<language slang="l:443f4c36-fcf5-4eb6-9500-8d06ed259e3e:jetbrains.mps.baseLanguage.classifiers" version="0" />
<language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
<language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="1" />
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
<language slang="l:f61473f9-130f-42f6-b98d-6c438812c2f6:jetbrains.mps.baseLanguage.unitTest" version="1" />
<language slang="l:63650c59-16c8-498a-99c8-005c7ee9515d:jetbrains.mps.lang.access" version="0" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="1" />
<language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="13" />
<language slang="l:c72da2b9-7cce-4447-8389-f407dc1158b7:jetbrains.mps.lang.structure" version="7" />
<language slang="l:8585453e-6bfb-4d80-98de-b16074f1d86c:jetbrains.mps.lang.test" version="2" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
<language slang="l:b802a056-92a2-4fbc-902e-f8e5004c331f:org.inca.core" version="0" />
<language slang="l:e6d2ffd5-9c56-41f8-99ac-9d1ceb13daa2:org.inca.data" version="2" />
......@@ -47,9 +54,11 @@
<module reference="f2801650-65d5-424e-bb1b-463a8781b786(jetbrains.mps.baseLanguage.javadoc)" version="0" />
<module reference="e39e4a59-8cb6-498e-860e-8fa8361c0d90(jetbrains.mps.baseLanguage.scopes)" version="0" />
<module reference="2d3c70e9-aab2-4870-8d8d-6036800e4103(jetbrains.mps.kernel)" version="0" />
<module reference="63650c59-16c8-498a-99c8-005c7ee9515d(jetbrains.mps.lang.access)" version="0" />
<module reference="d936855b-48da-4812-a8a0-2bfddd633ac5(jetbrains.mps.lang.behavior.api)" version="0" />
<module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
<module reference="446c26eb-2b7b-4bf0-9b35-f83fa582753e(jetbrains.mps.lang.modelapi)" version="0" />
<module reference="642f71f8-327a-425b-84f9-44ad58786d27(jetbrains.mps.lang.project.modules)" version="0" />
<module reference="7866978e-a0f0-4cc7-81bc-4d213d9375e1(jetbrains.mps.lang.smodel)" version="1" />
<module reference="c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)" version="0" />
<module reference="9ded098b-ad6a-4657-bfd9-48636cfe8bc3(jetbrains.mps.lang.traceable)" version="0" />
......
<?xml version="1.0" encoding="UTF-8"?>
<debug-info version="2">
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1160998861373:jetbrains.mps.baseLanguage.structure.AssertStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1082485599095:jetbrains.mps.baseLanguage.structure.BlockStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123140:jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123155:jetbrains.mps.baseLanguage.structure.ExpressionStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068390468200:jetbrains.mps.baseLanguage.structure.FieldDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123159:jetbrains.mps.baseLanguage.structure.IfStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123165:jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068581242864:jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068581242878:jetbrains.mps.baseLanguage.structure.ReturnStatement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123157:jetbrains.mps.baseLanguage.structure.Statement" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1070462154015:jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1070475587102:jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" />
<concept fqn="c:f3061a53-9226-4cc5-a443-f952ceaf5816/1153952380246:jetbrains.mps.baseLanguage.structure.TryStatement" />
<root nodeRef="r:da26fee4-9ce9-44a6-8a5c-0d8bee4a2825(FORecursiveTypes_Checker.tests@tests)/656937758664844563">
<file name="SimpleFORecursiveTypesTest_Test.java">
<node id="656937758664844563" at="41,44,42,25" concept="11" />
<node id="7797870059170749017" at="46,44,47,67" concept="3" />
<node id="656937758664844563" at="52,52,53,19" concept="11" />
<node id="2580730847075558027" at="56,46,57,63" concept="7" />
<node id="2580730847075622316" at="57,63,58,207" concept="7" />
<node id="1066296671799661965" at="58,207,59,0" concept="9" />
<node id="1066296671799684264" at="59,0,60,69" concept="7" />
<node id="1066296671799667325" at="60,69,61,0" concept="9" />
<node id="1066296671798277163" at="64,29,65,169" concept="7" />
<node id="1066296671798282877" at="65,169,66,79" concept="7" />
<node id="1066296671798285619" at="66,79,67,98" concept="3" />
<node id="1066296671800036024" at="67,98,68,0" concept="9" />
<node id="1066296671798989414" at="70,48,71,92" concept="8" />
<node id="1066296671798535000" at="75,48,76,94" concept="8" />
<node id="1066296671800683849" at="78,15,79,83" concept="3" />
<node id="2580730847075635431" at="82,17,83,57" concept="3" />
<node id="1066296671800318244" at="88,71,89,224" concept="7" />
<node id="1066296671800360575" at="89,224,90,231" concept="7" />
<node id="1066296671800755282" at="91,31,92,79" concept="3" />
<node id="8775378229013202774" at="93,14,94,79" concept="3" />
<node id="8775378229004803327" at="95,7,96,32" concept="8" />
<node id="8775378229004604137" at="98,88,99,68" concept="7" />
<node id="8775378229004629485" at="101,38,102,70" concept="7" />
<node id="8775378229004743676" at="103,26,104,34" concept="3" />
<node id="8775378229004753373" at="107,9,108,0" concept="9" />
<node id="8775378229004770685" at="110,38,111,71" concept="7" />
<node id="8775378229004787064" at="112,26,113,34" concept="3" />
<node id="8775378229004816039" at="116,9,117,0" concept="9" />
<node id="8775378229004820933" at="117,0,118,27" concept="0" />
<node id="656937758664844563" at="36,0,38,0" concept="10" trace="ourParamCache" />
<node id="656937758664844563" at="38,0,40,0" concept="4" trace="myWithCommandRule" />
<node id="8775378229013197062" at="93,12,95,7" concept="1" />
<node id="656937758664844563" at="41,0,44,0" concept="2" trace="SimpleFORecursiveTypesTest_Test#()V" />
<node id="656937758664844563" at="52,0,55,0" concept="2" trace="TestBody#(Ljetbrains/mps/lang/test/runtime/TransformationTest;)V" />
<node id="1066296671798386556" at="70,0,73,0" concept="6" trace="accept#(Lorg/jetbrains/mps/openapi/model/SModel;)Z" />
<node id="1066296671798530520" at="75,0,78,0" concept="6" trace="accept#(Lorg/jetbrains/mps/openapi/model/SModel;)Z" />
<node id="8775378229004651510" at="102,70,105,11" concept="5" />
<node id="8775378229004777023" at="111,71,114,11" concept="5" />
<node id="7797870059170749017" at="45,0,49,0" concept="6" trace="test_test#()V" />
<node id="1066296671798325094" at="68,0,73,15" concept="7" />
<node id="1066296671798471482" at="73,15,78,15" concept="7" />
<node id="1066296671800741754" at="90,231,95,7" concept="5" />
<node id="8775378229004597426" at="101,0,107,0" concept="6" trace="visit#(Lorg/jetbrains/mps/openapi/model/SModel;)V" />
<node id="8775378229004763865" at="110,0,116,0" concept="6" trace="visit#(Lorg/jetbrains/mps/openapi/model/SModel;)V" />
<node id="1066296671800614541" at="99,68,107,9" concept="3" />
<node id="8775378229004759362" at="108,0,116,9" concept="3" />
<node id="1066296671800302084" at="88,0,98,0" concept="6" trace="isResultAsExpected#(Lorg/jetbrains/mps/openapi/model/SModel;Z)Z" />
<node id="2580730847075562209" at="64,0,81,0" concept="6" trace="run#()V" />
<node id="2580730847075562208" at="62,11,81,11" concept="3" />
<node id="1066296671800601750" at="98,0,120,0" concept="6" trace="assertAll#(Ljava/lang/Iterable;Ljava/lang/Iterable;)V" />
<node id="2580730847075555196" at="61,0,84,7" concept="12" />
<node id="7797870059170749017" at="56,0,86,0" concept="6" trace="test_test#()V" />
<scope id="656937758664844563" at="41,44,42,25" />
<scope id="7797870059170749017" at="46,44,47,67" />
<scope id="656937758664844563" at="52,52,53,19" />
<scope id="1066296671798386557" at="70,48,71,92" />
<scope id="1066296671798530521" at="75,48,76,94" />
<scope id="2580730847075555198" at="82,17,83,57" />
<scope id="1066296671800741756" at="91,31,92,79" />
<scope id="8775378229013197063" at="93,14,94,79" />
<scope id="8775378229004651512" at="103,26,104,34" />
<scope id="8775378229004777025" at="112,26,113,34" />
<scope id="656937758664844563" at="41,0,44,0" />
<scope id="656937758664844563" at="52,0,55,0">
<var name="owner" id="656937758664844563" />
</scope>
<scope id="1066296671798386556" at="70,0,73,0">
<var name="it" id="1066296671798386556" />
</scope>
<scope id="1066296671798530520" at="75,0,78,0">
<var name="it" id="1066296671798530520" />
</scope>
<scope id="7797870059170749017" at="45,0,49,0" />
<scope id="8775378229004597427" at="101,38,105,11">
<var name="result" id="8775378229004629488" />
</scope>
<scope id="8775378229004763866" at="110,38,114,11">
<var name="result" id="8775378229004770688" />
</scope>
<scope id="8775378229004597426" at="101,0,107,0">
<var name="it" id="8775378229004597426" />
</scope>
<scope id="8775378229004763865" at="110,0,116,0">
<var name="it" id="8775378229004763865" />
</scope>
<scope id="1066296671800302084" at="88,71,96,32">
<var name="elem" id="1066296671800318242" />
<var name="result" id="1066296671800360573" />
</scope>
<scope id="1066296671800302084" at="88,0,98,0">
<var name="expected" id="1066296671800302147" />
<var name="model" id="1066296671800302118" />
</scope>
<scope id="2580730847075562210" at="64,29,79,83">
<var name="allModels" id="1066296671798282880" />
<var name="modelsThatShouldFail" id="1066296671798471485" />
<var name="modelsThatShouldSucceed" id="1066296671798325097" />
<var name="module" id="1066296671798277164" />
</scope>
<scope id="2580730847075562209" at="64,0,81,0" />
<scope id="2580730847075555197" at="62,11,81,11" />
<scope id="1066296671800601750" at="98,88,118,27">
<var name="success" id="8775378229004604140" />
</scope>
<scope id="1066296671800601750" at="98,0,120,0">
<var name="failModles" id="8775378229004660418" />
<var name="successModels" id="1066296671800601815" />
</scope>
<scope id="7797870059170749017" at="56,46,84,7">
<var name="analysisModel" id="2580730847075622314" />
<var name="repository" id="2580730847075558025" />
<var name="testNamePrefix" id="1066296671799684262" />
</scope>
<scope id="7797870059170749017" at="56,0,86,0" />
<unit id="1066296671798386556" at="69,96,73,13" name="FORecursiveTypes_Checker.tests.SimpleFORecursiveTypesTest_Test$TestBody$1$1" />
<unit id="1066296671798530520" at="74,93,78,13" name="FORecursiveTypes_Checker.tests.SimpleFORecursiveTypesTest_Test$TestBody$1$2" />
<unit id="8775378229004597426" at="100,56,107,7" name="FORecursiveTypes_Checker.tests.SimpleFORecursiveTypesTest_Test$TestBody$2" />
<unit id="8775378229004763865" at="109,53,116,7" name="FORecursiveTypes_Checker.tests.SimpleFORecursiveTypesTest_Test$TestBody$3" />
<unit id="2580730847075562209" at="63,54,81,9" name="FORecursiveTypes_Checker.tests.SimpleFORecursiveTypesTest_Test$TestBody$1" />
<unit id="656937758664844563" at="50,0,121,0" name="FORecursiveTypes_Checker.tests.SimpleFORecursiveTypesTest_Test$TestBody" />
<unit id="656937758664844563" at="34,0,122,0" name="FORecursiveTypes_Checker.tests.SimpleFORecursiveTypesTest_Test" />
</file>
</root>
</debug-info>
......@@ -76,7 +76,7 @@
</node>
<node concept="228e00" id="53cwso477Gq" role="228e04">
<property role="TrG5h" value="succ" />
<node concept="3IOpWs" id="53cwso477GV" role="228e0r">
<node concept="3IOpWs" id="17iPpiB_$TE" role="228e0r">
<property role="TrG5h" value="Nat" />
</node>
</node>
......@@ -92,7 +92,7 @@
</node>
<node concept="2EAAUw" id="53cwso477Sm" role="2EAAYI">
<property role="2EAAUB" value="zero" />
<property role="2EAAUF" value="a" />
<property role="2EAAUF" value="x" />
<node concept="2EAANM" id="53cwso477Tg" role="2EAAUK">
<property role="TrG5h" value="zero" />
<node concept="1s3EnQ" id="53cwso477TV" role="2EAAKa" />
......@@ -101,17 +101,17 @@
<node concept="2EAAUw" id="53cwso477U0" role="2EAAYI">
<property role="2EAAUB" value="succ" />
<property role="2EAAUF" value="p" />
<node concept="1SCrv7" id="53cwso477Uh" role="2EAAUK">
<node concept="1SCrv7" id="17iPpiB_zHk" role="2EAAUK">
<property role="TrG5h" value="p" />
</node>
</node>
</node>
</node>
<node concept="1SCrqR" id="53cwso477QE" role="1SCrrM">
<node concept="3IOpWs" id="53cwso477QW" role="1SCrqY">
<node concept="1SCrqR" id="17iPpiB_$UM" role="1SCrrM">
<node concept="3IOpWs" id="17iPpiB_$Vh" role="1SCrqY">
<property role="TrG5h" value="Nat" />
</node>
<node concept="3IOpWs" id="53cwso477Qw" role="1SCrqM">
<node concept="3IOpWs" id="17iPpiB_$UC" role="1SCrqM">
<property role="TrG5h" value="Nat" />
</node>
</node>
......
......@@ -6,6 +6,7 @@
<classNode dependClassName="FORecursiveTypes_Checker.model.Typing_CheckErrorQuerySpecification" />
<classNode dependClassName="FORecursiveTypes_Checker.model.Typing_InferQuerySpecification" />
<classNode dependClassName="FORecursiveTypes_Checker.model.Typing_LookupFailureQuerySpecification" />
<classNode dependClassName="FORecursiveTypes_Checker.model.Typing_LookupTypeVarFailureQuerySpecification" />
<classNode dependClassName="FORecursiveTypes_Checker.model.Typing_MatchFunFailureQuerySpecification" />
<classNode dependClassName="FORecursiveTypes_Checker.model.Typing_MatchVariantFailureQuerySpecification" />
<classNode dependClassName="io.usethesource.capsule.Map" />
......@@ -126,6 +127,65 @@
<classNode dependClassName="org.jetbrains.mps.openapi.language.SLanguage" />
<classNode extendsClassName="org.inca.core.runtime.plugin.MPSQuerySpecificationHints" />
</dependency>
<dependency className="FORecursiveTypes_Checker.model.Typing_AllvarsQuerySpecification">
<classNode dependClassName="FORecursiveTypes_Checker.model.QuerySpecificationHints" />
<classNode dependClassName="FORecursiveTypes_Checker.model.Typing_Allvars_0_switchCommonQuerySpecification" />
<classNode dependClassName="java.lang.Class" />
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.lang.String" />
<classNode dependClassName="java.lang.SuppressWarnings" />
<classNode dependClassName="java.util.ArrayList" />
<classNode dependClassName="java.util.Arrays" />
<classNode dependClassName="java.util.HashSet" />
<classNode dependClassName="java.util.List" />
<classNode dependClassName="java.util.Set" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.SetSequence" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.api.ViatraQueryEngine" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.api.scope.QueryScope" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.exception.ViatraQueryException" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.PBody" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.PVariable" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.queries.QueryInitializationException" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.tuple.Tuples" />
<classNode dependClassName="org.inca.core.runtime.plugin.AbstractPQuery" />
<classNode dependClassName="org.inca.core.runtime.plugin.AbstractScope" />
<classNode dependClassName="org.inca.core.runtime.plugin.ConceptFeatureKey" />
<classNode dependClassName="org.inca.core.runtime.plugin.ConceptKey" />
<classNode dependClassName="org.inca.core.runtime.plugin.MPSGenericPatternMatcher" />
<classNode dependClassName="org.inca.core.runtime.plugin.MPSQuerySpecificationHints" />
<classNode extendsClassName="org.inca.core.runtime.plugin.MPSQuerySpecification" />
</dependency>
<dependency className="FORecursiveTypes_Checker.model.Typing_Allvars_0_switchCommonQuerySpecification">
<classNode dependClassName="FORecursiveTypes_Checker.model.QuerySpecificationHints" />
<classNode dependClassName="java.lang.Class" />
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.lang.String" />
<classNode dependClassName="java.lang.SuppressWarnings" />
<classNode dependClassName="java.util.ArrayList" />
<classNode dependClassName="java.util.Arrays" />
<classNode dependClassName="java.util.HashSet" />
<classNode dependClassName="java.util.List" />
<classNode dependClassName="java.util.Set" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.SetSequence" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.api.ViatraQueryEngine" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.api.scope.QueryScope" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.exception.ViatraQueryException" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.PBody" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.queries.QueryInitializationException" />
<classNode dependClassName="org.inca.core.runtime.plugin.AbstractPQuery" />
<classNode dependClassName="org.inca.core.runtime.plugin.AbstractScope" />
<classNode dependClassName="org.inca.core.runtime.plugin.MPSGenericPatternMatcher" />
<classNode dependClassName="org.inca.core.runtime.plugin.MPSQuerySpecificationHints" />
<classNode extendsClassName="org.inca.core.runtime.plugin.MPSQuerySpecification" />
</dependency>
<dependency className="FORecursiveTypes_Checker.model.Typing_AsLTypeQuerySpecification">
<classNode dependClassName="FORecursiveTypes_Checker.model.LType" />