Introduce runtime support module j.m.coderules.runtime.

This commit is contained in:
Fedor Isakov 2020-06-21 12:18:31 +02:00
parent 8441ebc5e1
commit ab99a0245c
16 changed files with 1113 additions and 715 deletions

View File

@ -11,6 +11,7 @@
<modulePath path="$PROJECT_DIR$/coderules/languages/jetbrains.mps.typechecking.annotation/jetbrains.mps.typechecking.annotation.mpl" folder="typechecking.annotation" />
<modulePath path="$PROJECT_DIR$/coderules/languages/jetbrains.mps.typechecking.testlang/jetbrains.mps.typechecking.testlang.mpl" folder="typechecking.test" />
<modulePath path="$PROJECT_DIR$/coderules/solutions/jetbrains.mps.coderules.build/jetbrains.mps.coderules.build.msd" folder="coderules.build" />
<modulePath path="$PROJECT_DIR$/coderules/solutions/jetbrains.mps.coderules.runtime/jetbrains.mps.coderules.runtime.msd" folder="coderules" />
<modulePath path="$PROJECT_DIR$/coderules/solutions/jetbrains.mps.coderules.test/jetbrains.mps.coderules.test.msd" folder="coderules.test" />
<modulePath path="$PROJECT_DIR$/coderules/solutions/jetbrains.mps.coderules.typechecking.test/jetbrains.mps.coderules.typechecking.test.msd" folder="typechecking.test" />
<modulePath path="$PROJECT_DIR$/coderules/solutions/jetbrains.mps.coderules.typechecking.testlang.sandbox/jetbrains.mps.coderules.typechecking.testlang.sandbox.msd" folder="typechecking.test" />

128
build.xml
View File

@ -595,6 +595,7 @@
<module ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" kind="cl" />
<module ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" kind="cl" />
<module ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" kind="cl" />
<module ref="f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)" kind="cl" />
<module ref="ff6372a2-2f45-4ec3-952b-02581666015f(jetbrains.mps.lang.coderules.template)" kind="cl" />
<module ref="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" kind="cl" />
<module ref="a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)" kind="cl" />
@ -699,6 +700,43 @@
<zipfileset file="${basedir}/coderules/solutions/jetbrains.mps.lang.coderules.template/jetbrains.mps.lang.coderules.template.msd" prefix="module" />
<zipfileset dir="${build.tmp}/customProcessors/copyModels/coderules-solutions-jetbrains.mps.lang.coderules.template-models" prefix="module/models" />
</jar>
<mkdir dir="${build.tmp}/default/jetbrains.mps.coderules.runtime.jar" />
<mkdir dir="${build.tmp}/default/jetbrains.mps.coderules.runtime.jar/META-INF" />
<echoxml file="${build.tmp}/default/jetbrains.mps.coderules.runtime.jar/META-INF/module.xml">
<module namespace="jetbrains.mps.coderules.runtime" type="solution" uuid="f113d56b-63e3-4120-a89c-2f5dcb8c6290">
<dependencies>
<module ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" kind="rt" />
<module ref="52b81ac7-93fd-4e9e-b972-4995882da6d4(jetbrains.mps.baseLanguage.references.runtime)" kind="rt" />
<module ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" kind="cl" />
<module ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" kind="cl" />
</dependencies>
<uses>
<language id="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" />
</uses>
<classpath>
<entry path="." />
</classpath>
<sources jar="jetbrains.mps.coderules.runtime-src.jar" descriptor="jetbrains.mps.coderules.runtime.msd" />
</module>
</echoxml>
<jar destfile="${build.layout}/deploy/jetbrains.mps.coderules.runtime.jar" duplicate="preserve">
<fileset dir="${build.tmp}/java/out/jetbrains.mps.coderules.runtime" />
<fileset dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules.runtime/source_gen" includes="**/trace.info, **/exports, **/*.mps, **/checkpoints" />
<fileset dir="${build.tmp}/default/jetbrains.mps.coderules.runtime.jar" />
</jar>
<copyModels todir="${build.tmp}/customProcessors/copyModels/coderules-solutions-jetbrains.mps.coderules.runtime-models">
<fileset dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules.runtime/models" includes="**/*.mps, **/*.mpsr, **/.model" />
</copyModels>
<jar destfile="${build.layout}/deploy/jetbrains.mps.coderules.runtime-src.jar" duplicate="preserve">
<fileset dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules.runtime/source_gen">
<exclude name="**/trace.info" />
<exclude name="**/exports" />
<exclude name="**/checkpoints" />
<exclude name="**/*.mps" />
</fileset>
<zipfileset file="${basedir}/coderules/solutions/jetbrains.mps.coderules.runtime/jetbrains.mps.coderules.runtime.msd" prefix="module" />
<zipfileset dir="${build.tmp}/customProcessors/copyModels/coderules-solutions-jetbrains.mps.coderules.runtime-models" prefix="module/models" />
</jar>
<mkdir dir="${build.tmp}/default/jetbrains.mps.coderules.jar" />
<mkdir dir="${build.tmp}/default/jetbrains.mps.coderules.jar/META-INF" />
<echoxml file="${build.tmp}/default/jetbrains.mps.coderules.jar/META-INF/module.xml">
@ -2541,6 +2579,7 @@
<module ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" kind="cl" />
<module ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" kind="cl" />
<module ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" kind="cl" />
<module ref="f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)" kind="cl" />
<module ref="ff6372a2-2f45-4ec3-952b-02581666015f(jetbrains.mps.lang.coderules.template)" kind="cl" />
<module ref="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" kind="cl" />
<module ref="a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)" kind="cl" />
@ -2645,6 +2684,43 @@
<zipfileset file="${basedir}/coderules/solutions/jetbrains.mps.lang.coderules.template/jetbrains.mps.lang.coderules.template.msd" prefix="module" />
<zipfileset dir="${build.tmp}/customProcessors/copyModels/coderules-solutions-jetbrains.mps.lang.coderules.template-models1" prefix="module/models" />
</jar>
<mkdir dir="${build.tmp}/default/jetbrains.mps.coderules.runtime.jar1" />
<mkdir dir="${build.tmp}/default/jetbrains.mps.coderules.runtime.jar1/META-INF" />
<echoxml file="${build.tmp}/default/jetbrains.mps.coderules.runtime.jar1/META-INF/module.xml">
<module namespace="jetbrains.mps.coderules.runtime" type="solution" uuid="f113d56b-63e3-4120-a89c-2f5dcb8c6290">
<dependencies>
<module ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" kind="rt" />
<module ref="52b81ac7-93fd-4e9e-b972-4995882da6d4(jetbrains.mps.baseLanguage.references.runtime)" kind="rt" />
<module ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" kind="cl" />
<module ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" kind="cl" />
</dependencies>
<uses>
<language id="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" />
</uses>
<classpath>
<entry path="." />
</classpath>
<sources jar="jetbrains.mps.coderules.runtime-src.jar" descriptor="jetbrains.mps.coderules.runtime.msd" />
</module>
</echoxml>
<jar destfile="${build.tmp}/default/coderules-0.5.zip/coderules/languages/jetbrains.mps.coderules.runtime.jar" duplicate="preserve">
<fileset dir="${build.tmp}/java/out/jetbrains.mps.coderules.runtime" />
<fileset dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules.runtime/source_gen" includes="**/trace.info, **/exports, **/*.mps, **/checkpoints" />
<fileset dir="${build.tmp}/default/jetbrains.mps.coderules.runtime.jar1" />
</jar>
<copyModels todir="${build.tmp}/customProcessors/copyModels/coderules-solutions-jetbrains.mps.coderules.runtime-models1">
<fileset dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules.runtime/models" includes="**/*.mps, **/*.mpsr, **/.model" />
</copyModels>
<jar destfile="${build.tmp}/default/coderules-0.5.zip/coderules/languages/jetbrains.mps.coderules.runtime-src.jar" duplicate="preserve">
<fileset dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules.runtime/source_gen">
<exclude name="**/trace.info" />
<exclude name="**/exports" />
<exclude name="**/checkpoints" />
<exclude name="**/*.mps" />
</fileset>
<zipfileset file="${basedir}/coderules/solutions/jetbrains.mps.coderules.runtime/jetbrains.mps.coderules.runtime.msd" prefix="module" />
<zipfileset dir="${build.tmp}/customProcessors/copyModels/coderules-solutions-jetbrains.mps.coderules.runtime-models1" prefix="module/models" />
</jar>
<mkdir dir="${build.tmp}/default/jetbrains.mps.coderules.jar1" />
<mkdir dir="${build.tmp}/default/jetbrains.mps.coderules.jar1/META-INF" />
<echoxml file="${build.tmp}/default/jetbrains.mps.coderules.jar1/META-INF/module.xml">
@ -3756,7 +3832,7 @@
<delete dir="${build.layout}" />
</target>
<target name="compileJava" depends="java.compile.jetbrains.mps.coderules.build, java.compile.jetbrains.mps.logic.runtime, java.compile.jetbrains.mps.logic, java.compile.jetbrains.mps.logic#6626732309150416985, java.compile.jetbrains.mps.logic.test, java.compile.jetbrains.mps.lang.typechecking.runtime, java.compile.jetbrains.mps.lang.typechecking, java.compile.jetbrains.mps.lang.typechecking#01, java.compile.jetbrains.mps.coderules.typechecking, java.compile.jetbrains.mps.coderules.typechecking.ui, java.compile.jetbrains.mps.typechecking.annotation, java.compile.jetbrains.mps.typechecking.testlang, java.compile.jetbrains.mps.typechecking.testlang#3575255234175341581, java.compile.jetbrains.mps.coderules.typechecking.testlang.sandbox, java.compile.jetbrains.mps.coderules.typechecking.test, java.compile.jetbrains.mps.lang.controlflow.runtime, java.compile.jetbrains.mps.lang.controlflow, java.compile.jetbrains.mps.lang.controlflow#01, java.compile.jetbrains.mps.controlflow, java.compile.jetbrains.mps.controlflow.ui, java.compile.jetbrains.mps.lang.coderules, java.compile.jetbrains.mps.lang.coderules#4578927328670739933, java.compile.jetbrains.mps.lang.coderules.template, java.compile.jetbrains.mps.lang.coderules.runtime, java.compile.jetbrains.mps.coderules, java.compile.jetbrains.mps.coderules.ui, java.compile.jetbrains.mps.coderules.test" />
<target name="compileJava" depends="java.compile.jetbrains.mps.coderules.build, java.compile.jetbrains.mps.logic.runtime, java.compile.jetbrains.mps.logic, java.compile.jetbrains.mps.logic#6626732309150416985, java.compile.jetbrains.mps.logic.test, java.compile.jetbrains.mps.lang.typechecking.runtime, java.compile.jetbrains.mps.lang.typechecking, java.compile.jetbrains.mps.lang.typechecking#01, java.compile.jetbrains.mps.coderules.typechecking, java.compile.jetbrains.mps.coderules.typechecking.ui, java.compile.jetbrains.mps.typechecking.annotation, java.compile.jetbrains.mps.typechecking.testlang, java.compile.jetbrains.mps.typechecking.testlang#3575255234175341581, java.compile.jetbrains.mps.coderules.typechecking.testlang.sandbox, java.compile.jetbrains.mps.coderules.typechecking.test, java.compile.jetbrains.mps.lang.controlflow.runtime, java.compile.jetbrains.mps.lang.controlflow, java.compile.jetbrains.mps.lang.controlflow#01, java.compile.jetbrains.mps.controlflow, java.compile.jetbrains.mps.controlflow.ui, java.compile.jetbrains.mps.lang.coderules, java.compile.jetbrains.mps.lang.coderules#4578927328670739933, java.compile.jetbrains.mps.lang.coderules.template, java.compile.jetbrains.mps.lang.coderules.runtime, java.compile.jetbrains.mps.coderules.runtime, java.compile.jetbrains.mps.coderules, java.compile.jetbrains.mps.coderules.ui, java.compile.jetbrains.mps.coderules.test" />
<target name="processResources" />
@ -3906,6 +3982,7 @@
<library file="${artifacts.mps}/plugins/mps-testing/languages/languageDesign/jetbrains.mps.lang.test.runtime.jar" />
<chunk>
<module file="${basedir}/coderules/solutions/jetbrains.mps.coderules.build/jetbrains.mps.coderules.build.msd" />
<module file="${basedir}/coderules/solutions/jetbrains.mps.coderules.runtime/jetbrains.mps.coderules.runtime.msd" />
<module file="${basedir}/coderules/solutions/jetbrains.mps.logic.reactor/jetbrains.mps.logic.reactor.msd" />
<module file="${basedir}/coderules/languages/jetbrains.mps.logic/runtime/jetbrains.mps.logic.runtime.msd" />
</chunk>
@ -5238,7 +5315,7 @@
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.coderules.runtime" depends="java.compile.jetbrains.mps.lang.coderules.template, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<target name="java.compile.jetbrains.mps.lang.coderules.runtime" depends="java.compile.jetbrains.mps.coderules.runtime, java.compile.jetbrains.mps.lang.coderules.template, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<mkdir dir="${mps.macro.coderules_home}/coderules/languages/jetbrains.mps.lang.coderules/runtime/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.coderules.runtime" />
<javac destdir="${build.tmp}/java/out/jetbrains.mps.lang.coderules.runtime" fork="true" encoding="utf8" includeantruntime="false" debug="true">
@ -5251,20 +5328,21 @@
<fileset file="${artifacts.mps}/lib/mps-annotations.jar" />
<fileset file="${artifacts.mps}/lib/mps-openapi.jar" />
<fileset file="${artifacts.mps}/lib/mps-context.jar" />
<fileset file="${artifacts.mps}/lib/mps-behavior-api.jar" />
<fileset file="${artifacts.mps}/lib/mps-behavior-runtime.jar" />
<fileset file="${artifacts.mps}/lib/mps-closures.jar" />
<fileset file="${artifacts.mps}/lib/mps-collections.jar" />
<fileset file="${artifacts.mps}/lib/mps-generator.jar" />
<fileset file="${artifacts.mps}/lib/mps-logging.jar" />
<fileset file="${artifacts.mps}/lib/mps-closures.jar" />
<fileset file="${artifacts.mps}/lib/mps-collections.jar" />
<fileset file="${artifacts.mps}/lib/mps-tuples.jar" />
<fileset file="${artifacts.mps}/lib/mps-references.jar" />
<fileset file="${artifacts.mps}/lib/mps-behavior-api.jar" />
<fileset file="${artifacts.mps}/lib/mps-behavior-runtime.jar" />
<fileset file="${artifacts.mps}/lib/mps-messaging.jar" />
<fileset file="${artifacts.mps}/lib/mps-boot-util.jar" />
<fileset file="${artifacts.mps}/lib/mps-constraints-runtime.jar" />
<fileset file="${artifacts.mps}/lib/mps-persistence.jar" />
<fileset file="${artifacts.mps}/lib/mps-project-check.jar" />
<fileset file="${artifacts.mps}/lib/mps-textgen.jar" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.coderules.runtime" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.lang.coderules.template" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.logic.runtime" />
<fileset file="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.logic.reactor/lib/collection-0.7.jar" />
@ -5282,6 +5360,42 @@
</javac>
</target>
<target name="java.compile.jetbrains.mps.coderules.runtime" depends="fetchDependencies">
<mkdir dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules.runtime/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.coderules.runtime" />
<javac destdir="${build.tmp}/java/out/jetbrains.mps.coderules.runtime" fork="true" encoding="utf8" includeantruntime="false" debug="true">
<compilerarg value="-Xlint:none" />
<src>
<path location="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules.runtime/source_gen" />
</src>
<classpath>
<fileset file="${artifacts.mps}/lib/mps-core.jar" />
<fileset file="${artifacts.mps}/lib/mps-annotations.jar" />
<fileset file="${artifacts.mps}/lib/mps-openapi.jar" />
<fileset file="${artifacts.mps}/lib/mps-context.jar" />
<fileset file="${artifacts.mps}/lib/mps-generator.jar" />
<fileset file="${artifacts.mps}/lib/mps-logging.jar" />
<fileset file="${artifacts.mps}/lib/mps-closures.jar" />
<fileset file="${artifacts.mps}/lib/mps-collections.jar" />
<fileset file="${artifacts.mps}/lib/mps-tuples.jar" />
<fileset file="${artifacts.mps}/lib/mps-references.jar" />
<fileset file="${artifacts.mps}/lib/mps-behavior-api.jar" />
<fileset file="${artifacts.mps}/lib/mps-behavior-runtime.jar" />
<fileset file="${artifacts.mps}/lib/mps-messaging.jar" />
<fileset file="${artifacts.mps}/lib/mps-boot-util.jar" />
<fileset file="${artifacts.mps}/lib/mps-constraints-runtime.jar" />
<fileset file="${artifacts.mps}/lib/mps-persistence.jar" />
<fileset file="${artifacts.mps}/lib/mps-project-check.jar" />
<fileset file="${artifacts.mps}/lib/mps-textgen.jar" />
<fileset file="${artifacts.mps}/lib/annotations.jar" />
<fileset file="${artifacts.mps}/lib/log4j.jar" />
<fileset file="${artifacts.mps}/lib/jdom.jar" />
<fileset file="${artifacts.mps}/lib/trove4j.jar" />
<fileset file="${artifacts.mps}/lib/ecj-4.13.jar" />
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.coderules" depends="java.compile.jetbrains.mps.lang.coderules.runtime, java.compile.jetbrains.mps.lang.coderules.template, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<mkdir dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.coderules" />
@ -5591,6 +5705,7 @@
<pathelement location="${artifacts.mps}/plugins/mps-testing/languages/languageDesign/jetbrains.mps.lang.test.matcher.jar" />
<pathelement location="${artifacts.mps}/plugins/mps-testing/languages/languageDesign/jetbrains.mps.lang.test.runtime.jar" />
<pathelement location="${build.layout}/deploy/jetbrains.mps.coderules.jar" />
<pathelement location="${build.layout}/deploy/jetbrains.mps.coderules.runtime.jar" />
<pathelement location="${build.layout}/deploy/jetbrains.mps.coderules.typechecking.jar" />
<pathelement location="${build.layout}/deploy/jetbrains.mps.lang.coderules.jar" />
<pathelement location="${build.layout}/deploy/jetbrains.mps.lang.coderules.runtime.jar" />
@ -5673,6 +5788,7 @@
<target name="cleanSources">
<delete dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules.build/source_gen" />
<delete dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.coderules.runtime/source_gen" />
<delete dir="${mps.macro.coderules_home}/coderules/languages/jetbrains.mps.logic/runtime/source_gen" />
<delete dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.lang.controlflow.runtime/source_gen" />
<delete dir="${mps.macro.coderules_home}/coderules/solutions/jetbrains.mps.lang.typechecking.runtime/source_gen" />

View File

@ -18,6 +18,7 @@
<dependency reexport="false">8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)</dependency>
<dependency reexport="false">6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)</dependency>
<dependency reexport="false">ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)</dependency>
<dependency reexport="false">f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)</dependency>
</dependencies>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="11" />
@ -41,6 +42,7 @@
<module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
<module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)" version="0" />
<module reference="26e8f4ce-2a35-4f44-8065-e5ba154b18e9(jetbrains.mps.lang.coderules.runtime)" version="0" />
<module reference="ff6372a2-2f45-4ec3-952b-02581666015f(jetbrains.mps.lang.coderules.template)" version="0" />
<module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />

View File

@ -37,6 +37,7 @@
<import index="et5u" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.messages(MPS.Core/)" />
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
<import index="5zyv" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.concurrent(JDK/)" />
<import index="lehm" ref="r:464fcc95-fddb-47d1-b620-592cbf6b8bf2(jetbrains.mps.coderules.runtime.memoizer)" />
</imports>
<registry>
<language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
@ -294,7 +295,6 @@
<concept id="1080120340718" name="jetbrains.mps.baseLanguage.structure.AndExpression" flags="nn" index="1Wc70l" />
<concept id="1170345865475" name="jetbrains.mps.baseLanguage.structure.AnonymousClass" flags="ig" index="1Y3b0j">
<reference id="1170346070688" name="classifier" index="1Y3XeK" />
<child id="1201186121363" name="typeParameter" index="2Ghqu4" />
</concept>
</language>
<language id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures">
@ -1009,9 +1009,9 @@
</node>
<node concept="3clFbH" id="7WKNeR9x_5m" role="3cqZAp" />
<node concept="3clFbF" id="1Ry9kf2v6ed" role="3cqZAp">
<node concept="2YIFZM" id="2FXL1yZvCpM" role="3clFbG">
<ref role="37wK5l" node="2tjs8VC1byF" resolve="push" />
<ref role="1Pybhc" node="2tjs8VC0K0m" resolve="Memoizer" />
<node concept="2YIFZM" id="5wYq9r5EDbG" role="3clFbG">
<ref role="37wK5l" to="lehm:2tjs8VC1byF" resolve="push" />
<ref role="1Pybhc" to="lehm:2tjs8VC0K0m" resolve="Memoizer" />
</node>
</node>
<node concept="3cpWs8" id="5mr7UHcbsDR" role="3cqZAp">
@ -1369,9 +1369,9 @@
</node>
<node concept="3clFbH" id="4F3SXIF4mJi" role="3cqZAp" />
<node concept="3clFbF" id="1Ry9kf2vk7J" role="3cqZAp">
<node concept="2YIFZM" id="2FXL1yZvCpO" role="3clFbG">
<ref role="37wK5l" node="2tjs8VC1f3O" resolve="pop" />
<ref role="1Pybhc" node="2tjs8VC0K0m" resolve="Memoizer" />
<node concept="2YIFZM" id="5wYq9r5EDbI" role="3clFbG">
<ref role="37wK5l" to="lehm:2tjs8VC1f3O" resolve="pop" />
<ref role="1Pybhc" to="lehm:2tjs8VC0K0m" resolve="Memoizer" />
</node>
</node>
</node>
@ -1692,672 +1692,6 @@
<node concept="10P_77" id="23c4kVtmgLb" role="1tU5fm" />
</node>
</node>
<node concept="312cEu" id="2tjs8VC0K0m">
<property role="TrG5h" value="Memoizer" />
<node concept="2tJIrI" id="47QDz5v5J8W" role="jymVt" />
<node concept="Wx3nA" id="2tjs8VC16TI" role="jymVt">
<property role="TrG5h" value="CONTEXT_INSTANCE" />
<node concept="3Tm6S6" id="2tjs8VC16TK" role="1B3o_S" />
<node concept="3uibUv" id="2tjs8VC172F" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~ThreadLocal" resolve="ThreadLocal" />
<node concept="3uibUv" id="2tjs8VC17gT" role="11_B2D">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
</node>
<node concept="2ShNRf" id="47QDz5v5JP3" role="33vP2m">
<node concept="YeOm9" id="47QDz5v5JP4" role="2ShVmc">
<node concept="1Y3b0j" id="47QDz5v5JP5" role="YeSDq">
<property role="2bfB8j" value="true" />
<ref role="1Y3XeK" to="wyt6:~ThreadLocal" resolve="ThreadLocal" />
<ref role="37wK5l" to="wyt6:~ThreadLocal.&lt;init&gt;()" resolve="ThreadLocal" />
<node concept="3Tm1VV" id="47QDz5v5JP6" role="1B3o_S" />
<node concept="3uibUv" id="47QDz5v5JP7" role="2Ghqu4">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="3clFb_" id="47QDz5v5JP8" role="jymVt">
<property role="1EzhhJ" value="false" />
<property role="TrG5h" value="initialValue" />
<property role="DiZV1" value="false" />
<property role="od$2w" value="false" />
<node concept="3Tmbuc" id="47QDz5v5JP9" role="1B3o_S" />
<node concept="3uibUv" id="47QDz5v5JPa" role="3clF45">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="3clFbS" id="47QDz5v5JPb" role="3clF47">
<node concept="3clFbF" id="47QDz5v5JPc" role="3cqZAp">
<node concept="10Nm6u" id="47QDz5v5JPd" role="3clFbG" />
</node>
</node>
<node concept="2AHcQZ" id="47QDz5v5JPe" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC0K2N" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC0VB5" role="jymVt">
<property role="TrG5h" value="fromContext" />
<node concept="3uibUv" id="2tjs8VC12Co" role="3clF45">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="3Tm1VV" id="2tjs8VC0VB8" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC0VB9" role="3clF47">
<node concept="3clFbJ" id="2k2r9bMc1fJ" role="3cqZAp">
<node concept="3clFbS" id="2k2r9bMc1fL" role="3clFbx">
<node concept="YS8fn" id="2k2r9bMc2qm" role="3cqZAp">
<node concept="2ShNRf" id="2k2r9bMc2Gn" role="YScLw">
<node concept="1pGfFk" id="2k2r9bMc8hl" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~IllegalStateException.&lt;init&gt;(java.lang.String)" resolve="IllegalStateException" />
<node concept="Xl_RD" id="2k2r9bMc8Pw" role="37wK5m">
<property role="Xl_RC" value="not initialized" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbC" id="2k2r9bMc1P1" role="3clFbw">
<node concept="10Nm6u" id="2k2r9bMc26V" role="3uHU7w" />
<node concept="37vLTw" id="2k2r9bMc1yi" role="3uHU7B">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC1aA_" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC1aJQ" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC1aA$" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
<node concept="liA8E" id="2tjs8VC1bcJ" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~ThreadLocal.get()" resolve="get" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="47QDz5v5P_y" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC1byF" role="jymVt">
<property role="TrG5h" value="push" />
<node concept="3cqZAl" id="2tjs8VC1byH" role="3clF45" />
<node concept="3Tm1VV" id="2tjs8VC1byI" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC1byJ" role="3clF47">
<node concept="3cpWs8" id="2tjs8VC1cVW" role="3cqZAp">
<node concept="3cpWsn" id="2tjs8VC1cVX" role="3cpWs9">
<property role="TrG5h" value="curr" />
<node concept="3uibUv" id="2tjs8VC1cVN" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="2OqwBi" id="2tjs8VC1cVY" role="33vP2m">
<node concept="37vLTw" id="2tjs8VC1cVZ" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
<node concept="liA8E" id="2tjs8VC1cW0" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~ThreadLocal.get()" resolve="get" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC1dCc" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC1dMh" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC1dCa" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
<node concept="liA8E" id="2tjs8VC1dWX" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~ThreadLocal.set(java.lang.Object)" resolve="set" />
<node concept="2ShNRf" id="2tjs8VC1e6B" role="37wK5m">
<node concept="1pGfFk" id="2tjs8VC1exZ" role="2ShVmc">
<ref role="37wK5l" node="2tjs8VC15lz" resolve="Memoizer" />
<node concept="37vLTw" id="2tjs8VC1eFO" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1cVX" resolve="curr" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC1eP8" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC1f3O" role="jymVt">
<property role="TrG5h" value="pop" />
<node concept="3cqZAl" id="2tjs8VC1f3Q" role="3clF45" />
<node concept="3Tm1VV" id="2tjs8VC1f3R" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC1f3S" role="3clF47">
<node concept="3cpWs8" id="2tjs8VC1g0D" role="3cqZAp">
<node concept="3cpWsn" id="2tjs8VC1g0E" role="3cpWs9">
<property role="TrG5h" value="curr" />
<node concept="3uibUv" id="2tjs8VC1g0h" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="2OqwBi" id="2tjs8VC1g0F" role="33vP2m">
<node concept="37vLTw" id="2tjs8VC1g0G" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
<node concept="liA8E" id="2tjs8VC1g0H" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~ThreadLocal.get()" resolve="get" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="2tjs8VC1gvV" role="3cqZAp">
<node concept="3clFbS" id="2tjs8VC1gvX" role="3clFbx">
<node concept="YS8fn" id="2tjs8VC1hvu" role="3cqZAp">
<node concept="2ShNRf" id="2tjs8VC1hZa" role="YScLw">
<node concept="1pGfFk" id="2tjs8VC1iqO" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~NullPointerException.&lt;init&gt;()" resolve="NullPointerException" />
</node>
</node>
</node>
</node>
<node concept="3clFbC" id="2tjs8VC1h9e" role="3clFbw">
<node concept="10Nm6u" id="2tjs8VC1hjF" role="3uHU7w" />
<node concept="37vLTw" id="2tjs8VC1gEu" role="3uHU7B">
<ref role="3cqZAo" node="2tjs8VC1g0E" resolve="curr" />
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC1jBY" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC1jNz" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC1jBW" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
<node concept="liA8E" id="2tjs8VC1jZK" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~ThreadLocal.set(java.lang.Object)" resolve="set" />
<node concept="2OqwBi" id="2tjs8VC1km2" role="37wK5m">
<node concept="37vLTw" id="2tjs8VC1kbj" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC1g0E" resolve="curr" />
</node>
<node concept="2OwXpG" id="2tjs8VC1kxK" role="2OqNvi">
<ref role="2Oxat5" node="2tjs8VC13tT" resolve="prev" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC1mO1" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC1mZE" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC1mNZ" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC1g0E" resolve="curr" />
</node>
<node concept="liA8E" id="2tjs8VC1ncA" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC1kVc" resolve="clear" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC1bne" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC2_Fr" role="jymVt">
<property role="TrG5h" value="set" />
<node concept="37vLTG" id="2tjs8VC2De3" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC2DuA" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="2tjs8VC2EaW" role="3clF46">
<property role="TrG5h" value="value" />
<node concept="16syzq" id="2tjs8VC2Esr" role="1tU5fm">
<ref role="16sUi3" node="2tjs8VC2AEZ" resolve="T" />
</node>
</node>
<node concept="3cqZAl" id="2tjs8VC2CJE" role="3clF45" />
<node concept="3Tm1VV" id="2tjs8VC2_Fu" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC2_Fv" role="3clF47">
<node concept="3clFbF" id="2tjs8VC2FaW" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC2FpB" role="3clFbG">
<node concept="1rXfSq" id="2tjs8VC2FaV" role="2Oq$k0">
<ref role="37wK5l" node="2tjs8VC0VB5" resolve="fromContext" />
</node>
<node concept="liA8E" id="2tjs8VC2FEp" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC0VJ9" resolve="setValue" />
<node concept="37vLTw" id="2tjs8VC2FT$" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2De3" resolve="token" />
</node>
<node concept="37vLTw" id="2tjs8VC2Gnp" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2EaW" resolve="value" />
</node>
</node>
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC2AEZ" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC2Csg" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC2Csb" role="jymVt">
<property role="TrG5h" value="get" />
<node concept="16syzq" id="2tjs8VC2Csc" role="3clF45">
<ref role="16sUi3" node="2tjs8VC2Csf" resolve="T" />
</node>
<node concept="3Tm1VV" id="2tjs8VC2Csd" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC2Cse" role="3clF47">
<node concept="3clFbF" id="2tjs8VC2GC4" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC2GRi" role="3clFbG">
<node concept="1rXfSq" id="2tjs8VC2GC3" role="2Oq$k0">
<ref role="37wK5l" node="2tjs8VC0VB5" resolve="fromContext" />
</node>
<node concept="liA8E" id="2tjs8VC2H8_" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC1Yjc" resolve="getValue" />
<node concept="37vLTw" id="2tjs8VC2ImB" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2HnC" resolve="token" />
</node>
</node>
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC2Csf" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
<node concept="37vLTG" id="2tjs8VC2HnC" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC2HnB" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC2BCo" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC2Blb" role="jymVt">
<property role="TrG5h" value="getOrPut" />
<node concept="16syzq" id="2tjs8VC2Blc" role="3clF45">
<ref role="16sUi3" node="2tjs8VC2Blf" resolve="T" />
</node>
<node concept="3Tm1VV" id="2tjs8VC2Bld" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC2Ble" role="3clF47">
<node concept="3clFbF" id="2tjs8VC2Lat" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC2Lq8" role="3clFbG">
<node concept="1rXfSq" id="2tjs8VC2Las" role="2Oq$k0">
<ref role="37wK5l" node="2tjs8VC0VB5" resolve="fromContext" />
</node>
<node concept="liA8E" id="2tjs8VC2LFO" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC1NkJ" resolve="getOrSetValue" />
<node concept="37vLTw" id="2tjs8VC2LVT" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2I_G" resolve="token" />
</node>
<node concept="37vLTw" id="2tjs8VC2Msa" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2J5M" resolve="defaultValue" />
</node>
</node>
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC2Blf" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
<node concept="37vLTG" id="2tjs8VC2I_G" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC2I_F" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="2tjs8VC2J5M" role="3clF46">
<property role="TrG5h" value="defaultValue" />
<node concept="3uibUv" id="2tjs8VC2Jol" role="1tU5fm">
<ref role="3uigEE" to="18ew:~Computable" resolve="Computable" />
<node concept="16syzq" id="2tjs8VC2JVe" role="11_B2D">
<ref role="16sUi3" node="2tjs8VC2Blf" resolve="T" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC2$R3" role="jymVt" />
<node concept="3clFbW" id="2tjs8VC15lz" role="jymVt">
<node concept="37vLTG" id="2tjs8VC15tB" role="3clF46">
<property role="TrG5h" value="prev" />
<node concept="3uibUv" id="2tjs8VC15AC" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
</node>
<node concept="3cqZAl" id="2tjs8VC15l_" role="3clF45" />
<node concept="3Tm6S6" id="2tjs8VC2_a2" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC15lB" role="3clF47">
<node concept="3clFbF" id="2tjs8VC163F" role="3cqZAp">
<node concept="37vLTI" id="2tjs8VC16qj" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC16xR" role="37vLTx">
<ref role="3cqZAo" node="2tjs8VC15tB" resolve="prev" />
</node>
<node concept="2OqwBi" id="2tjs8VC16au" role="37vLTJ">
<node concept="Xjq3P" id="2tjs8VC163E" role="2Oq$k0" />
<node concept="2OwXpG" id="2tjs8VC16if" role="2OqNvi">
<ref role="2Oxat5" node="2tjs8VC13tT" resolve="prev" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC15dh" role="jymVt" />
<node concept="3clFb_" id="2tjs8VC0VJ9" role="jymVt">
<property role="TrG5h" value="setValue" />
<node concept="3Tm6S6" id="1Ry9kf2s1zO" role="1B3o_S" />
<node concept="37vLTG" id="2tjs8VC0VXg" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC0W1X" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="2tjs8VC0W8R" role="3clF46">
<property role="TrG5h" value="value" />
<node concept="16syzq" id="2tjs8VC0We0" role="1tU5fm">
<ref role="16sUi3" node="2tjs8VC0WdA" resolve="T" />
</node>
</node>
<node concept="3cqZAl" id="2tjs8VC0VJb" role="3clF45" />
<node concept="3clFbS" id="2tjs8VC0VJd" role="3clF47">
<node concept="3clFbF" id="2tjs8VC0Y5E" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC0YbR" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC0Y5D" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC0WHe" resolve="token2value" />
</node>
<node concept="liA8E" id="2tjs8VC0Ymq" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.put(java.lang.Object,java.lang.Object)" resolve="put" />
<node concept="37vLTw" id="2tjs8VC0Yrk" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC0VXg" resolve="token" />
</node>
<node concept="37vLTw" id="2tjs8VC0Y$c" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC0W8R" resolve="value" />
</node>
</node>
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC0WdA" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC0K2S" role="jymVt" />
<node concept="3clFb_" id="2tjs8VC1Yjc" role="jymVt">
<property role="TrG5h" value="getValue" />
<node concept="3Tm6S6" id="1Ry9kf2s1SP" role="1B3o_S" />
<node concept="37vLTG" id="2tjs8VC1Yjd" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC1Yje" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="16syzq" id="2tjs8VC1Yjf" role="3clF45">
<ref role="16sUi3" node="2tjs8VC1YjL" resolve="T" />
</node>
<node concept="3clFbS" id="2tjs8VC1Yjh" role="3clF47">
<node concept="3cpWs8" id="2tjs8VC26Cx" role="3cqZAp">
<node concept="3cpWsn" id="2tjs8VC26Cy" role="3cpWs9">
<property role="TrG5h" value="owner" />
<node concept="3uibUv" id="2tjs8VC26Cu" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="1rXfSq" id="2tjs8VC26Cz" role="33vP2m">
<ref role="37wK5l" node="2tjs8VC22Ho" resolve="lookupOwner" />
<node concept="37vLTw" id="2tjs8VC26C$" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1Yjd" resolve="token" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC26bV" role="3cqZAp">
<node concept="3K4zz7" id="2tjs8VC27HS" role="3clFbG">
<node concept="10QFUN" id="2tjs8VC29LP" role="3K4E3e">
<node concept="2OqwBi" id="2tjs8VC29LJ" role="10QFUP">
<node concept="2OqwBi" id="2tjs8VC29LK" role="2Oq$k0">
<node concept="37vLTw" id="2tjs8VC29LL" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC26Cy" resolve="owner" />
</node>
<node concept="2OwXpG" id="2tjs8VC29LM" role="2OqNvi">
<ref role="2Oxat5" node="2tjs8VC0WHe" resolve="token2value" />
</node>
</node>
<node concept="liA8E" id="2tjs8VC29LN" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.get(java.lang.Object)" resolve="get" />
<node concept="37vLTw" id="2tjs8VC29LO" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1Yjd" resolve="token" />
</node>
</node>
</node>
<node concept="16syzq" id="2tjs8VC2a1r" role="10QFUM">
<ref role="16sUi3" node="2tjs8VC1YjL" resolve="T" />
</node>
</node>
<node concept="10Nm6u" id="2tjs8VC29yP" role="3K4GZi" />
<node concept="3y3z36" id="2tjs8VC27ik" role="3K4Cdx">
<node concept="10Nm6u" id="2tjs8VC27w3" role="3uHU7w" />
<node concept="37vLTw" id="2tjs8VC26C_" role="3uHU7B">
<ref role="3cqZAo" node="2tjs8VC26Cy" resolve="owner" />
</node>
</node>
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC1YjL" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC1Yjb" role="jymVt" />
<node concept="3clFb_" id="2tjs8VC1NkJ" role="jymVt">
<property role="TrG5h" value="getOrSetValue" />
<node concept="3Tm6S6" id="1Ry9kf2s2dQ" role="1B3o_S" />
<node concept="37vLTG" id="2tjs8VC1OGQ" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC1OWd" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="2tjs8VC1Pmh" role="3clF46">
<property role="TrG5h" value="defaultValue" />
<node concept="3uibUv" id="2tjs8VC1QDR" role="1tU5fm">
<ref role="3uigEE" to="18ew:~Computable" resolve="Computable" />
<node concept="16syzq" id="2tjs8VC1WlB" role="11_B2D">
<ref role="16sUi3" node="2tjs8VC1Qh2" resolve="T" />
</node>
</node>
</node>
<node concept="16syzq" id="2tjs8VC2eWo" role="3clF45">
<ref role="16sUi3" node="2tjs8VC1Qh2" resolve="T" />
</node>
<node concept="3clFbS" id="2tjs8VC1NkN" role="3clF47">
<node concept="3cpWs8" id="2tjs8VC2b9c" role="3cqZAp">
<node concept="3cpWsn" id="2tjs8VC2b9d" role="3cpWs9">
<property role="TrG5h" value="owner" />
<node concept="3uibUv" id="2tjs8VC2b9a" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="1rXfSq" id="2tjs8VC2b9e" role="33vP2m">
<ref role="37wK5l" node="2tjs8VC22Ho" resolve="lookupOwner" />
<node concept="37vLTw" id="2tjs8VC2b9f" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1OGQ" resolve="token" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="2tjs8VC2bVQ" role="3cqZAp">
<node concept="3clFbS" id="2tjs8VC2bVS" role="3clFbx">
<node concept="3cpWs6" id="2tjs8VC2cKC" role="3cqZAp">
<node concept="10QFUN" id="2tjs8VC2day" role="3cqZAk">
<node concept="16syzq" id="2tjs8VC2dp6" role="10QFUM">
<ref role="16sUi3" node="2tjs8VC1Qh2" resolve="T" />
</node>
<node concept="2OqwBi" id="2tjs8VC2dOP" role="10QFUP">
<node concept="37vLTw" id="2tjs8VC2dBv" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC2b9d" resolve="owner" />
</node>
<node concept="liA8E" id="2tjs8VC2evJ" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC1Yjc" resolve="getValue" />
<node concept="37vLTw" id="2tjs8VC2eIi" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1OGQ" resolve="token" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3y3z36" id="2tjs8VC2cmA" role="3clFbw">
<node concept="10Nm6u" id="2tjs8VC2czs" role="3uHU7w" />
<node concept="37vLTw" id="2tjs8VC2c8O" role="3uHU7B">
<ref role="3cqZAo" node="2tjs8VC2b9d" resolve="owner" />
</node>
</node>
</node>
<node concept="3clFbH" id="2tjs8VC22g$" role="3cqZAp" />
<node concept="3cpWs8" id="2tjs8VC2iz1" role="3cqZAp">
<node concept="3cpWsn" id="2tjs8VC2iz2" role="3cpWs9">
<property role="TrG5h" value="value" />
<node concept="16syzq" id="2tjs8VC2iyR" role="1tU5fm">
<ref role="16sUi3" node="2tjs8VC1Qh2" resolve="T" />
</node>
<node concept="2OqwBi" id="2tjs8VC2iz3" role="33vP2m">
<node concept="37vLTw" id="2tjs8VC2iz4" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC1Pmh" resolve="defaultValue" />
</node>
<node concept="liA8E" id="2tjs8VC2iz5" role="2OqNvi">
<ref role="37wK5l" to="18ew:~Computable.compute()" resolve="compute" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC2gjI" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC2g_h" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC2gjG" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC0WHe" resolve="token2value" />
</node>
<node concept="liA8E" id="2tjs8VC2h3S" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.put(java.lang.Object,java.lang.Object)" resolve="put" />
<node concept="37vLTw" id="2tjs8VC2hxn" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1OGQ" resolve="token" />
</node>
<node concept="37vLTw" id="2tjs8VC2iz6" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2iz2" resolve="value" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC2jfU" role="3cqZAp">
<node concept="37vLTw" id="2tjs8VC2jfS" role="3clFbG">
<ref role="3cqZAo" node="2tjs8VC2iz2" resolve="value" />
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC1Qh2" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC22rr" role="jymVt" />
<node concept="3clFb_" id="2tjs8VC22Ho" role="jymVt">
<property role="TrG5h" value="lookupOwner" />
<node concept="37vLTG" id="2tjs8VC23ZY" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC24eE" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="3uibUv" id="2tjs8VC23b8" role="3clF45">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="3Tm6S6" id="2tjs8VC22YH" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC22Hs" role="3clF47">
<node concept="3clFbJ" id="2tjs8VC24Me" role="3cqZAp">
<node concept="3clFbS" id="2tjs8VC24Mf" role="3clFbx">
<node concept="3clFbJ" id="2tjs8VC24Mg" role="3cqZAp">
<node concept="3clFbS" id="2tjs8VC24Mh" role="3clFbx">
<node concept="3cpWs6" id="2tjs8VC24Mi" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC24Mj" role="3cqZAk">
<node concept="37vLTw" id="2tjs8VC24Mk" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC13tT" resolve="prev" />
</node>
<node concept="liA8E" id="2tjs8VC24Ml" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC22Ho" resolve="lookupOwner" />
<node concept="37vLTw" id="2tjs8VC24Mm" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC23ZY" resolve="token" />
</node>
</node>
</node>
</node>
</node>
<node concept="3y3z36" id="2tjs8VC24Mn" role="3clFbw">
<node concept="10Nm6u" id="2tjs8VC24Mo" role="3uHU7w" />
<node concept="37vLTw" id="2tjs8VC24Mp" role="3uHU7B">
<ref role="3cqZAo" node="2tjs8VC13tT" resolve="prev" />
</node>
</node>
</node>
<node concept="3clFbH" id="2tjs8VC24Mq" role="3cqZAp" />
<node concept="3cpWs6" id="2tjs8VC24Mr" role="3cqZAp">
<node concept="10Nm6u" id="2tjs8VC24Ms" role="3cqZAk" />
</node>
</node>
<node concept="3fqX7Q" id="2tjs8VC24Mt" role="3clFbw">
<node concept="2OqwBi" id="2tjs8VC24Mu" role="3fr31v">
<node concept="37vLTw" id="2tjs8VC24Mv" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC0WHe" resolve="token2value" />
</node>
<node concept="liA8E" id="2tjs8VC24Mw" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.containsKey(java.lang.Object)" resolve="containsKey" />
<node concept="37vLTw" id="2tjs8VC24Mx" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC23ZY" resolve="token" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC25Is" role="3cqZAp">
<node concept="Xjq3P" id="2tjs8VC25Iq" role="3clFbG" />
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC1N51" role="jymVt" />
<node concept="3clFb_" id="2tjs8VC1kVc" role="jymVt">
<property role="TrG5h" value="clear" />
<node concept="3cqZAl" id="2tjs8VC1kVe" role="3clF45" />
<node concept="3Tm6S6" id="2tjs8VC1lc0" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC1kVg" role="3clF47">
<node concept="3clFbF" id="2tjs8VC1lEc" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC1lS_" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC1lEb" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC0WHe" resolve="token2value" />
</node>
<node concept="liA8E" id="2tjs8VC1mbI" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.clear()" resolve="clear" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC1mof" role="jymVt" />
<node concept="2tJIrI" id="2tjs8VC19BF" role="jymVt" />
<node concept="312cEg" id="2tjs8VC0WHe" role="jymVt">
<property role="TrG5h" value="token2value" />
<node concept="3Tm6S6" id="2tjs8VC0WHf" role="1B3o_S" />
<node concept="3uibUv" id="2tjs8VC0WI8" role="1tU5fm">
<ref role="3uigEE" to="33ny:~Map" resolve="Map" />
<node concept="3uibUv" id="2tjs8VC0WIJ" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
<node concept="3uibUv" id="2tjs8VC0WJb" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="2ShNRf" id="2tjs8VC0WLW" role="33vP2m">
<node concept="1pGfFk" id="2tjs8VC0XV5" role="2ShVmc">
<ref role="37wK5l" to="33ny:~HashMap.&lt;init&gt;()" resolve="HashMap" />
<node concept="3uibUv" id="2tjs8VC0XZd" role="1pMfVU">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
<node concept="3uibUv" id="2tjs8VC0Y1s" role="1pMfVU">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC0WGi" role="jymVt" />
<node concept="312cEg" id="2tjs8VC13tT" role="jymVt">
<property role="TrG5h" value="prev" />
<node concept="3Tm6S6" id="2tjs8VC13tU" role="1B3o_S" />
<node concept="3uibUv" id="2tjs8VC13_k" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC13mA" role="jymVt" />
<node concept="3Tm1VV" id="2tjs8VC0K0n" role="1B3o_S" />
</node>
<node concept="312cEu" id="7Oc59RSEjdb">
<property role="TrG5h" value="Result" />
<property role="1sVAO0" value="true" />
@ -6722,9 +6056,9 @@
<node concept="3Tm6S6" id="7kTeLbPg96d" role="1B3o_S" />
<node concept="3clFbS" id="7kTeLbPg82l" role="3clF47">
<node concept="3clFbF" id="7kTeLbPgepw" role="3cqZAp">
<node concept="2YIFZM" id="7kTeLbPgepx" role="3clFbG">
<ref role="1Pybhc" node="2tjs8VC0K0m" resolve="Memoizer" />
<ref role="37wK5l" node="2tjs8VC1byF" resolve="push" />
<node concept="2YIFZM" id="5wYq9r5EDbH" role="3clFbG">
<ref role="37wK5l" to="lehm:2tjs8VC1byF" resolve="push" />
<ref role="1Pybhc" to="lehm:2tjs8VC0K0m" resolve="Memoizer" />
</node>
</node>
<node concept="3J1_TO" id="7kTeLbPgepy" role="3cqZAp">
@ -6741,9 +6075,9 @@
<node concept="1wplmZ" id="aYozK66ZtW9" role="1zxBo6">
<node concept="3clFbS" id="7kTeLbPgepI" role="1wplMD">
<node concept="3clFbF" id="7kTeLbPgepJ" role="3cqZAp">
<node concept="2YIFZM" id="7kTeLbPgepK" role="3clFbG">
<ref role="1Pybhc" node="2tjs8VC0K0m" resolve="Memoizer" />
<ref role="37wK5l" node="2tjs8VC1f3O" resolve="pop" />
<node concept="2YIFZM" id="5wYq9r5EDbJ" role="3clFbG">
<ref role="37wK5l" to="lehm:2tjs8VC1f3O" resolve="pop" />
<ref role="1Pybhc" to="lehm:2tjs8VC0K0m" resolve="Memoizer" />
</node>
</node>
</node>

View File

@ -2572,6 +2572,65 @@
</node>
</node>
</node>
<node concept="1SiIV0" id="5wYq9r5EEqx" role="3bR37C">
<node concept="3bR9La" id="5wYq9r5EEqy" role="1SiIV1">
<ref role="3bR37D" node="5wYq9r5EBDN" resolve="jetbrains.mps.coderules.runtime" />
</node>
</node>
</node>
<node concept="1E1JtA" id="5wYq9r5EBDN" role="2G$12L">
<property role="BnDLt" value="true" />
<property role="TrG5h" value="jetbrains.mps.coderules.runtime" />
<property role="3LESm3" value="f113d56b-63e3-4120-a89c-2f5dcb8c6290" />
<node concept="55IIr" id="5wYq9r5EBDO" role="3LF7KH">
<node concept="2Ry0Ak" id="5wYq9r5EALQ" role="iGT6I">
<property role="2Ry0Am" value="coderules" />
<node concept="2Ry0Ak" id="5wYq9r5EAZT" role="2Ry0An">
<property role="2Ry0Am" value="solutions" />
<node concept="2Ry0Ak" id="5wYq9r5EB1Q" role="2Ry0An">
<property role="2Ry0Am" value="jetbrains.mps.coderules.runtime" />
<node concept="2Ry0Ak" id="5wYq9r5EB3N" role="2Ry0An">
<property role="2Ry0Am" value="jetbrains.mps.coderules.runtime.msd" />
</node>
</node>
</node>
</node>
</node>
<node concept="1BupzO" id="5wYq9r5EB9P" role="3bR31x">
<property role="3ZfqAx" value="models" />
<property role="1Hdu6h" value="true" />
<property role="1HemKv" value="true" />
<node concept="3LXTmp" id="5wYq9r5EB9Q" role="1HemKq">
<node concept="398BVA" id="5wYq9r5EB9F" role="3LXTmr">
<ref role="398BVh" node="46o4wsH3mv_" resolve="mps.macro.coderules_home" />
<node concept="2Ry0Ak" id="5wYq9r5EB9G" role="iGT6I">
<property role="2Ry0Am" value="coderules" />
<node concept="2Ry0Ak" id="5wYq9r5EB9H" role="2Ry0An">
<property role="2Ry0Am" value="solutions" />
<node concept="2Ry0Ak" id="5wYq9r5EB9I" role="2Ry0An">
<property role="2Ry0Am" value="jetbrains.mps.coderules.runtime" />
<node concept="2Ry0Ak" id="5wYq9r5EB9J" role="2Ry0An">
<property role="2Ry0Am" value="models" />
</node>
</node>
</node>
</node>
</node>
<node concept="3qWCbU" id="5wYq9r5EB9R" role="3LXTna">
<property role="3qWCbO" value="**/*.mps, **/*.mpsr, **/.model" />
</node>
</node>
</node>
<node concept="1SiIV0" id="5wYq9r5EEqJ" role="3bR37C">
<node concept="3bR9La" id="5wYq9r5EEqK" role="1SiIV1">
<ref role="3bR37D" to="ffeo:mXGwHwhVPj" resolve="JDK" />
</node>
</node>
<node concept="1SiIV0" id="5wYq9r5EEqL" role="3bR37C">
<node concept="3bR9La" id="5wYq9r5EEqM" role="1SiIV1">
<ref role="3bR37D" to="ffeo:1TaHNgiIbIQ" resolve="MPS.Core" />
</node>
</node>
</node>
<node concept="1E1JtA" id="NKt6yn9_8p" role="2G$12L">
<property role="BnDLt" value="true" />
@ -3014,6 +3073,9 @@
<ref role="L2wRA" node="7BVjoXzUx9d" resolve="jetbrains.mps.lang.coderules.template" />
</node>
<node concept="L2wRC" id="NKt6yowV1X" role="39821P">
<ref role="L2wRA" node="5wYq9r5EBDN" resolve="jetbrains.mps.coderules.runtime" />
</node>
<node concept="L2wRC" id="5wYq9r5FcqW" role="39821P">
<ref role="L2wRA" node="NKt6yn9_8p" resolve="jetbrains.mps.coderules" />
</node>
<node concept="L2wRC" id="6Yb9hAqybAz" role="39821P">
@ -3204,20 +3266,23 @@
<ref role="L2wRA" node="7BVjoXzUx9d" resolve="jetbrains.mps.lang.coderules.template" />
</node>
<node concept="L2wRC" id="NKt6yn9AaW" role="39821P">
<ref role="L2wRA" node="5wYq9r5EBDN" resolve="jetbrains.mps.coderules.runtime" />
</node>
<node concept="L2wRC" id="5wYq9r5FcuF" role="39821P">
<ref role="L2wRA" node="NKt6yn9_8p" resolve="jetbrains.mps.coderules" />
<node concept="3yLZsm" id="NKt6yn9Anr" role="3yL2VB">
<node concept="3yLZsm" id="5wYq9r5FcuG" role="3yL2VB">
<property role="3yLZsk" value="../lib/reactive-streams-1.0.0.final-0.7.jar" />
<node concept="398BVA" id="NKt6yn9Ans" role="3yLZsn">
<node concept="398BVA" id="5wYq9r5FcuH" role="3yLZsn">
<ref role="398BVh" node="46o4wsH3mv_" resolve="mps.macro.coderules_home" />
<node concept="2Ry0Ak" id="NKt6yn9Ant" role="iGT6I">
<node concept="2Ry0Ak" id="5wYq9r5FcuI" role="iGT6I">
<property role="2Ry0Am" value="coderules" />
<node concept="2Ry0Ak" id="NKt6yn9Anu" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuJ" role="2Ry0An">
<property role="2Ry0Am" value="solutions" />
<node concept="2Ry0Ak" id="NKt6yn9Anv" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuK" role="2Ry0An">
<property role="2Ry0Am" value="jetbrains.mps.coderules" />
<node concept="2Ry0Ak" id="NKt6yn9Anw" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuL" role="2Ry0An">
<property role="2Ry0Am" value="lib" />
<node concept="2Ry0Ak" id="NKt6yn9Anx" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuM" role="2Ry0An">
<property role="2Ry0Am" value="reactive-streams-1.0.0.final.jar" />
</node>
</node>
@ -3226,19 +3291,19 @@
</node>
</node>
</node>
<node concept="3yLZsm" id="NKt6yn9Any" role="3yL2VB">
<node concept="3yLZsm" id="5wYq9r5FcuN" role="3yL2VB">
<property role="3yLZsk" value="../lib/rxjava-2.2.1.8jar" />
<node concept="398BVA" id="NKt6yn9Anz" role="3yLZsn">
<node concept="398BVA" id="5wYq9r5FcuO" role="3yLZsn">
<ref role="398BVh" node="46o4wsH3mv_" resolve="mps.macro.coderules_home" />
<node concept="2Ry0Ak" id="NKt6yn9An$" role="iGT6I">
<node concept="2Ry0Ak" id="5wYq9r5FcuP" role="iGT6I">
<property role="2Ry0Am" value="coderules" />
<node concept="2Ry0Ak" id="NKt6yn9An_" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuQ" role="2Ry0An">
<property role="2Ry0Am" value="solutions" />
<node concept="2Ry0Ak" id="NKt6yn9AnA" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuR" role="2Ry0An">
<property role="2Ry0Am" value="jetbrains.mps.coderules" />
<node concept="2Ry0Ak" id="NKt6yn9AnB" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuS" role="2Ry0An">
<property role="2Ry0Am" value="lib" />
<node concept="2Ry0Ak" id="5HLeEcg2$L_" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuT" role="2Ry0An">
<property role="2Ry0Am" value="rxjava-2.2.18.jar" />
</node>
</node>
@ -3247,19 +3312,19 @@
</node>
</node>
</node>
<node concept="3yLZsm" id="NKt6yn9AnD" role="3yL2VB">
<node concept="3yLZsm" id="5wYq9r5FcuU" role="3yL2VB">
<property role="3yLZsk" value="../lib/rxjava2-swing-0.3.7.jar" />
<node concept="398BVA" id="NKt6yn9AnE" role="3yLZsn">
<node concept="398BVA" id="5wYq9r5FcuV" role="3yLZsn">
<ref role="398BVh" node="46o4wsH3mv_" resolve="mps.macro.coderules_home" />
<node concept="2Ry0Ak" id="NKt6yn9AnF" role="iGT6I">
<node concept="2Ry0Ak" id="5wYq9r5FcuW" role="iGT6I">
<property role="2Ry0Am" value="coderules" />
<node concept="2Ry0Ak" id="NKt6yn9AnG" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuX" role="2Ry0An">
<property role="2Ry0Am" value="solutions" />
<node concept="2Ry0Ak" id="NKt6yn9AnH" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuY" role="2Ry0An">
<property role="2Ry0Am" value="jetbrains.mps.coderules" />
<node concept="2Ry0Ak" id="NKt6yn9AnI" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5FcuZ" role="2Ry0An">
<property role="2Ry0Am" value="lib" />
<node concept="2Ry0Ak" id="5HLeEcg2$OB" role="2Ry0An">
<node concept="2Ry0Ak" id="5wYq9r5Fcv0" role="2Ry0An">
<property role="2Ry0Am" value="rxjava2-swing-0.3.7.jar" />
</node>
</node>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<solution name="jetbrains.mps.coderules.runtime" uuid="f113d56b-63e3-4120-a89c-2f5dcb8c6290" moduleVersion="0" compileInMPS="true">
<models>
<modelRoot contentPath="${module}" type="default">
<sourceRoot location="models" />
</modelRoot>
</models>
<facets>
<facet type="java">
<classes generated="true" path="${module}/classes_gen" />
</facet>
</facets>
<sourcePath />
<dependencies>
<dependency reexport="false">6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)</dependency>
<dependency reexport="false">6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)</dependency>
</dependencies>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="11" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="2" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
</languageVersions>
<dependencyVersions>
<module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />
<module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
<module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)" version="0" />
<module reference="9e98f4e2-decf-4e97-bf80-9109e8b759aa(jetbrains.mps.lang.feedback.context)" version="0" />
</dependencyVersions>
</solution>

View File

@ -0,0 +1,822 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:464fcc95-fddb-47d1-b620-592cbf6b8bf2(jetbrains.mps.coderules.runtime.memoizer)">
<persistence version="9" />
<languages>
<use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="11" />
</languages>
<imports>
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" />
<import index="18ew" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.util(MPS.Core/)" />
<import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" />
</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="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<concept id="1465982738277781862" name="jetbrains.mps.baseLanguage.structure.PlaceholderMember" flags="ng" index="2tJIrI" />
<concept id="1188207840427" name="jetbrains.mps.baseLanguage.structure.AnnotationInstance" flags="nn" index="2AHcQZ">
<reference id="1188208074048" name="annotation" index="2AI5Lk" />
</concept>
<concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ng" index="2AJDlI">
<child id="1188208488637" name="annotation" index="2AJF6D" />
</concept>
<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="1197029447546" name="jetbrains.mps.baseLanguage.structure.FieldReferenceOperation" flags="nn" index="2OwXpG">
<reference id="1197029500499" name="fieldDeclaration" index="2Oxat5" />
</concept>
<concept id="1145552977093" name="jetbrains.mps.baseLanguage.structure.GenericNewExpression" flags="nn" index="2ShNRf">
<child id="1145553007750" name="creator" index="2ShVmc" />
</concept>
<concept id="1070462154015" name="jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration" flags="ig" index="Wx3nA" />
<concept id="1070475354124" name="jetbrains.mps.baseLanguage.structure.ThisExpression" flags="nn" index="Xjq3P" />
<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="1182160077978" name="jetbrains.mps.baseLanguage.structure.AnonymousClassCreator" flags="nn" index="YeOm9">
<child id="1182160096073" name="cls" index="YeSDq" />
</concept>
<concept id="1081236700938" name="jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration" flags="ig" index="2YIFZL" />
<concept id="1164991038168" name="jetbrains.mps.baseLanguage.structure.ThrowStatement" flags="nn" index="YS8fn">
<child id="1164991057263" name="throwable" index="YScLw" />
</concept>
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
<concept id="1070534934090" name="jetbrains.mps.baseLanguage.structure.CastExpression" flags="nn" index="10QFUN">
<child id="1070534934091" name="type" index="10QFUM" />
<child id="1070534934092" name="expression" index="10QFUP" />
</concept>
<concept id="1068390468200" name="jetbrains.mps.baseLanguage.structure.FieldDeclaration" flags="ig" index="312cEg" />
<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="1109279763828" name="jetbrains.mps.baseLanguage.structure.TypeVariableDeclaration" flags="ng" index="16euLQ" />
<concept id="1109279851642" name="jetbrains.mps.baseLanguage.structure.GenericDeclaration" flags="ng" index="16eOlS">
<child id="1109279881614" name="typeVariableDeclaration" index="16eVyc" />
</concept>
<concept id="1109283449304" name="jetbrains.mps.baseLanguage.structure.TypeVariableReference" flags="in" index="16syzq">
<reference id="1109283546497" name="typeVariableDeclaration" index="16sUi3" />
</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="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">
<property id="4276006055363816570" name="isSynchronized" index="od$2w" />
<property id="1181808852946" name="isFinal" index="DiZV1" />
<child id="1068580123133" name="returnType" index="3clF45" />
<child id="1068580123134" name="parameter" index="3clF46" />
<child id="1068580123135" name="body" index="3clF47" />
</concept>
<concept id="1068580123165" name="jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration" flags="ig" index="3clFb_">
<property id="1178608670077" name="isAbstract" index="1EzhhJ" />
</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="1068580123157" name="jetbrains.mps.baseLanguage.structure.Statement" flags="nn" index="3clFbH" />
<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="1068580123140" name="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" flags="ig" index="3clFbW" />
<concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
<child id="1068581517676" name="expression" index="3cqZAk" />
</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="1068581517677" name="jetbrains.mps.baseLanguage.structure.VoidType" flags="in" index="3cqZAl" />
<concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
<child id="1081516765348" name="expression" index="3fr31v" />
</concept>
<concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
<child id="1068499141038" name="actualArgument" index="37wK5m" />
</concept>
<concept id="1212685548494" name="jetbrains.mps.baseLanguage.structure.ClassCreator" flags="nn" index="1pGfFk">
<child id="1212687122400" name="typeParameter" index="1pMfVU" />
</concept>
<concept id="1107461130800" name="jetbrains.mps.baseLanguage.structure.Classifier" flags="ng" index="3pOWGL">
<property id="521412098689998745" name="nonStatic" index="2bfB8j" />
<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="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
<reference id="1107535924139" name="classifier" index="3uigEE" />
<child id="1109201940907" name="parameter" index="11_B2D" />
</concept>
<concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
<child id="1081773367579" name="rightExpression" index="3uHU7w" />
<child id="1081773367580" name="leftExpression" index="3uHU7B" />
</concept>
<concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
<concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
<child id="1178549979242" name="visibility" index="1B3o_S" />
</concept>
<concept id="1163668896201" name="jetbrains.mps.baseLanguage.structure.TernaryOperatorExpression" flags="nn" index="3K4zz7">
<child id="1163668914799" name="condition" index="3K4Cdx" />
<child id="1163668922816" name="ifTrue" index="3K4E3e" />
<child id="1163668934364" name="ifFalse" index="3K4GZi" />
</concept>
<concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
<concept id="1146644623116" name="jetbrains.mps.baseLanguage.structure.PrivateVisibility" flags="nn" index="3Tm6S6" />
<concept id="1146644641414" name="jetbrains.mps.baseLanguage.structure.ProtectedVisibility" flags="nn" index="3Tmbuc" />
<concept id="1170345865475" name="jetbrains.mps.baseLanguage.structure.AnonymousClass" flags="ig" index="1Y3b0j">
<reference id="1170346070688" name="classifier" index="1Y3XeK" />
<child id="1201186121363" name="typeParameter" index="2Ghqu4" />
</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>
</registry>
<node concept="312cEu" id="2tjs8VC0K0m">
<property role="TrG5h" value="Memoizer" />
<node concept="2tJIrI" id="47QDz5v5J8W" role="jymVt" />
<node concept="Wx3nA" id="2tjs8VC16TI" role="jymVt">
<property role="TrG5h" value="CONTEXT_INSTANCE" />
<node concept="3Tm6S6" id="2tjs8VC16TK" role="1B3o_S" />
<node concept="3uibUv" id="2tjs8VC172F" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~ThreadLocal" resolve="ThreadLocal" />
<node concept="3uibUv" id="2tjs8VC17gT" role="11_B2D">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
</node>
<node concept="2ShNRf" id="47QDz5v5JP3" role="33vP2m">
<node concept="YeOm9" id="47QDz5v5JP4" role="2ShVmc">
<node concept="1Y3b0j" id="47QDz5v5JP5" role="YeSDq">
<property role="2bfB8j" value="true" />
<ref role="1Y3XeK" to="wyt6:~ThreadLocal" resolve="ThreadLocal" />
<ref role="37wK5l" to="wyt6:~ThreadLocal.&lt;init&gt;()" resolve="ThreadLocal" />
<node concept="3Tm1VV" id="47QDz5v5JP6" role="1B3o_S" />
<node concept="3uibUv" id="47QDz5v5JP7" role="2Ghqu4">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="3clFb_" id="47QDz5v5JP8" role="jymVt">
<property role="1EzhhJ" value="false" />
<property role="TrG5h" value="initialValue" />
<property role="DiZV1" value="false" />
<property role="od$2w" value="false" />
<node concept="3Tmbuc" id="47QDz5v5JP9" role="1B3o_S" />
<node concept="3uibUv" id="47QDz5v5JPa" role="3clF45">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="3clFbS" id="47QDz5v5JPb" role="3clF47">
<node concept="3clFbF" id="6Dg__VIRWzR" role="3cqZAp">
<node concept="2ShNRf" id="6Dg__VIRWzP" role="3clFbG">
<node concept="1pGfFk" id="6Dg__VIRYwR" role="2ShVmc">
<ref role="37wK5l" node="2tjs8VC15lz" resolve="Memoizer" />
<node concept="10Nm6u" id="6Dg__VIRYzI" role="37wK5m" />
</node>
</node>
</node>
</node>
<node concept="2AHcQZ" id="47QDz5v5JPe" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC0K2N" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC0VB5" role="jymVt">
<property role="TrG5h" value="fromContext" />
<node concept="3uibUv" id="2tjs8VC12Co" role="3clF45">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="3Tm1VV" id="2tjs8VC0VB8" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC0VB9" role="3clF47">
<node concept="3clFbJ" id="2k2r9bMc1fJ" role="3cqZAp">
<node concept="3clFbS" id="2k2r9bMc1fL" role="3clFbx">
<node concept="YS8fn" id="2k2r9bMc2qm" role="3cqZAp">
<node concept="2ShNRf" id="2k2r9bMc2Gn" role="YScLw">
<node concept="1pGfFk" id="2k2r9bMc8hl" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~IllegalStateException.&lt;init&gt;(java.lang.String)" resolve="IllegalStateException" />
<node concept="Xl_RD" id="2k2r9bMc8Pw" role="37wK5m">
<property role="Xl_RC" value="not initialized" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbC" id="2k2r9bMc1P1" role="3clFbw">
<node concept="10Nm6u" id="2k2r9bMc26V" role="3uHU7w" />
<node concept="37vLTw" id="2k2r9bMc1yi" role="3uHU7B">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC1aA_" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC1aJQ" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC1aA$" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
<node concept="liA8E" id="2tjs8VC1bcJ" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~ThreadLocal.get()" resolve="get" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="47QDz5v5P_y" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC1byF" role="jymVt">
<property role="TrG5h" value="push" />
<node concept="3cqZAl" id="2tjs8VC1byH" role="3clF45" />
<node concept="3Tm1VV" id="2tjs8VC1byI" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC1byJ" role="3clF47">
<node concept="3cpWs8" id="2tjs8VC1cVW" role="3cqZAp">
<node concept="3cpWsn" id="2tjs8VC1cVX" role="3cpWs9">
<property role="TrG5h" value="curr" />
<node concept="3uibUv" id="2tjs8VC1cVN" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="2OqwBi" id="2tjs8VC1cVY" role="33vP2m">
<node concept="37vLTw" id="2tjs8VC1cVZ" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
<node concept="liA8E" id="2tjs8VC1cW0" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~ThreadLocal.get()" resolve="get" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC1dCc" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC1dMh" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC1dCa" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
<node concept="liA8E" id="2tjs8VC1dWX" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~ThreadLocal.set(java.lang.Object)" resolve="set" />
<node concept="2ShNRf" id="2tjs8VC1e6B" role="37wK5m">
<node concept="1pGfFk" id="2tjs8VC1exZ" role="2ShVmc">
<ref role="37wK5l" node="2tjs8VC15lz" resolve="Memoizer" />
<node concept="37vLTw" id="2tjs8VC1eFO" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1cVX" resolve="curr" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC1eP8" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC1f3O" role="jymVt">
<property role="TrG5h" value="pop" />
<node concept="3cqZAl" id="2tjs8VC1f3Q" role="3clF45" />
<node concept="3Tm1VV" id="2tjs8VC1f3R" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC1f3S" role="3clF47">
<node concept="3cpWs8" id="2tjs8VC1g0D" role="3cqZAp">
<node concept="3cpWsn" id="2tjs8VC1g0E" role="3cpWs9">
<property role="TrG5h" value="curr" />
<node concept="3uibUv" id="2tjs8VC1g0h" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="2OqwBi" id="2tjs8VC1g0F" role="33vP2m">
<node concept="37vLTw" id="2tjs8VC1g0G" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
<node concept="liA8E" id="2tjs8VC1g0H" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~ThreadLocal.get()" resolve="get" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="2tjs8VC1gvV" role="3cqZAp">
<node concept="3clFbS" id="2tjs8VC1gvX" role="3clFbx">
<node concept="YS8fn" id="2tjs8VC1hvu" role="3cqZAp">
<node concept="2ShNRf" id="2tjs8VC1hZa" role="YScLw">
<node concept="1pGfFk" id="2tjs8VC1iqO" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~NullPointerException.&lt;init&gt;()" resolve="NullPointerException" />
</node>
</node>
</node>
</node>
<node concept="3clFbC" id="2tjs8VC1h9e" role="3clFbw">
<node concept="10Nm6u" id="2tjs8VC1hjF" role="3uHU7w" />
<node concept="37vLTw" id="2tjs8VC1gEu" role="3uHU7B">
<ref role="3cqZAo" node="2tjs8VC1g0E" resolve="curr" />
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC1jBY" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC1jNz" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC1jBW" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC16TI" resolve="CONTEXT_INSTANCE" />
</node>
<node concept="liA8E" id="2tjs8VC1jZK" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~ThreadLocal.set(java.lang.Object)" resolve="set" />
<node concept="2OqwBi" id="2tjs8VC1km2" role="37wK5m">
<node concept="37vLTw" id="2tjs8VC1kbj" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC1g0E" resolve="curr" />
</node>
<node concept="2OwXpG" id="2tjs8VC1kxK" role="2OqNvi">
<ref role="2Oxat5" node="2tjs8VC13tT" resolve="prev" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC1mO1" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC1mZE" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC1mNZ" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC1g0E" resolve="curr" />
</node>
<node concept="liA8E" id="2tjs8VC1ncA" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC1kVc" resolve="clear" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC1bne" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC2_Fr" role="jymVt">
<property role="TrG5h" value="set" />
<node concept="37vLTG" id="2tjs8VC2De3" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC2DuA" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="2tjs8VC2EaW" role="3clF46">
<property role="TrG5h" value="value" />
<node concept="16syzq" id="2tjs8VC2Esr" role="1tU5fm">
<ref role="16sUi3" node="2tjs8VC2AEZ" resolve="T" />
</node>
</node>
<node concept="3cqZAl" id="2tjs8VC2CJE" role="3clF45" />
<node concept="3Tm1VV" id="2tjs8VC2_Fu" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC2_Fv" role="3clF47">
<node concept="3clFbF" id="2tjs8VC2FaW" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC2FpB" role="3clFbG">
<node concept="1rXfSq" id="2tjs8VC2FaV" role="2Oq$k0">
<ref role="37wK5l" node="2tjs8VC0VB5" resolve="fromContext" />
</node>
<node concept="liA8E" id="2tjs8VC2FEp" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC0VJ9" resolve="setValue" />
<node concept="37vLTw" id="2tjs8VC2FT$" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2De3" resolve="token" />
</node>
<node concept="37vLTw" id="2tjs8VC2Gnp" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2EaW" resolve="value" />
</node>
</node>
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC2AEZ" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC2Csg" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC2Csb" role="jymVt">
<property role="TrG5h" value="get" />
<node concept="16syzq" id="2tjs8VC2Csc" role="3clF45">
<ref role="16sUi3" node="2tjs8VC2Csf" resolve="T" />
</node>
<node concept="3Tm1VV" id="2tjs8VC2Csd" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC2Cse" role="3clF47">
<node concept="3clFbF" id="2tjs8VC2GC4" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC2GRi" role="3clFbG">
<node concept="1rXfSq" id="2tjs8VC2GC3" role="2Oq$k0">
<ref role="37wK5l" node="2tjs8VC0VB5" resolve="fromContext" />
</node>
<node concept="liA8E" id="2tjs8VC2H8_" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC1Yjc" resolve="getValue" />
<node concept="37vLTw" id="2tjs8VC2ImB" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2HnC" resolve="token" />
</node>
</node>
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC2Csf" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
<node concept="37vLTG" id="2tjs8VC2HnC" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC2HnB" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC2BCo" role="jymVt" />
<node concept="2YIFZL" id="2tjs8VC2Blb" role="jymVt">
<property role="TrG5h" value="getOrPut" />
<node concept="16syzq" id="2tjs8VC2Blc" role="3clF45">
<ref role="16sUi3" node="2tjs8VC2Blf" resolve="T" />
</node>
<node concept="3Tm1VV" id="2tjs8VC2Bld" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC2Ble" role="3clF47">
<node concept="3clFbF" id="2tjs8VC2Lat" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC2Lq8" role="3clFbG">
<node concept="1rXfSq" id="2tjs8VC2Las" role="2Oq$k0">
<ref role="37wK5l" node="2tjs8VC0VB5" resolve="fromContext" />
</node>
<node concept="liA8E" id="2tjs8VC2LFO" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC1NkJ" resolve="getOrSetValue" />
<node concept="37vLTw" id="2tjs8VC2LVT" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2I_G" resolve="token" />
</node>
<node concept="37vLTw" id="2tjs8VC2Msa" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2J5M" resolve="defaultValue" />
</node>
</node>
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC2Blf" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
<node concept="37vLTG" id="2tjs8VC2I_G" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC2I_F" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="2tjs8VC2J5M" role="3clF46">
<property role="TrG5h" value="defaultValue" />
<node concept="3uibUv" id="2tjs8VC2Jol" role="1tU5fm">
<ref role="3uigEE" to="18ew:~Computable" resolve="Computable" />
<node concept="16syzq" id="2tjs8VC2JVe" role="11_B2D">
<ref role="16sUi3" node="2tjs8VC2Blf" resolve="T" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC2$R3" role="jymVt" />
<node concept="3clFbW" id="2tjs8VC15lz" role="jymVt">
<node concept="37vLTG" id="2tjs8VC15tB" role="3clF46">
<property role="TrG5h" value="prev" />
<node concept="3uibUv" id="2tjs8VC15AC" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
</node>
<node concept="3cqZAl" id="2tjs8VC15l_" role="3clF45" />
<node concept="3Tm6S6" id="2tjs8VC2_a2" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC15lB" role="3clF47">
<node concept="3clFbF" id="2tjs8VC163F" role="3cqZAp">
<node concept="37vLTI" id="2tjs8VC16qj" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC16xR" role="37vLTx">
<ref role="3cqZAo" node="2tjs8VC15tB" resolve="prev" />
</node>
<node concept="2OqwBi" id="2tjs8VC16au" role="37vLTJ">
<node concept="Xjq3P" id="2tjs8VC163E" role="2Oq$k0" />
<node concept="2OwXpG" id="2tjs8VC16if" role="2OqNvi">
<ref role="2Oxat5" node="2tjs8VC13tT" resolve="prev" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC15dh" role="jymVt" />
<node concept="3clFb_" id="2tjs8VC0VJ9" role="jymVt">
<property role="TrG5h" value="setValue" />
<node concept="3Tm6S6" id="1Ry9kf2s1zO" role="1B3o_S" />
<node concept="37vLTG" id="2tjs8VC0VXg" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC0W1X" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="2tjs8VC0W8R" role="3clF46">
<property role="TrG5h" value="value" />
<node concept="16syzq" id="2tjs8VC0We0" role="1tU5fm">
<ref role="16sUi3" node="2tjs8VC0WdA" resolve="T" />
</node>
</node>
<node concept="3cqZAl" id="2tjs8VC0VJb" role="3clF45" />
<node concept="3clFbS" id="2tjs8VC0VJd" role="3clF47">
<node concept="3clFbF" id="2tjs8VC0Y5E" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC0YbR" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC0Y5D" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC0WHe" resolve="token2value" />
</node>
<node concept="liA8E" id="2tjs8VC0Ymq" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.put(java.lang.Object,java.lang.Object)" resolve="put" />
<node concept="37vLTw" id="2tjs8VC0Yrk" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC0VXg" resolve="token" />
</node>
<node concept="37vLTw" id="2tjs8VC0Y$c" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC0W8R" resolve="value" />
</node>
</node>
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC0WdA" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC0K2S" role="jymVt" />
<node concept="3clFb_" id="2tjs8VC1Yjc" role="jymVt">
<property role="TrG5h" value="getValue" />
<node concept="3Tm6S6" id="1Ry9kf2s1SP" role="1B3o_S" />
<node concept="37vLTG" id="2tjs8VC1Yjd" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC1Yje" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="16syzq" id="2tjs8VC1Yjf" role="3clF45">
<ref role="16sUi3" node="2tjs8VC1YjL" resolve="T" />
</node>
<node concept="3clFbS" id="2tjs8VC1Yjh" role="3clF47">
<node concept="3cpWs8" id="2tjs8VC26Cx" role="3cqZAp">
<node concept="3cpWsn" id="2tjs8VC26Cy" role="3cpWs9">
<property role="TrG5h" value="owner" />
<node concept="3uibUv" id="2tjs8VC26Cu" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="1rXfSq" id="2tjs8VC26Cz" role="33vP2m">
<ref role="37wK5l" node="2tjs8VC22Ho" resolve="lookupOwner" />
<node concept="37vLTw" id="2tjs8VC26C$" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1Yjd" resolve="token" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC26bV" role="3cqZAp">
<node concept="3K4zz7" id="2tjs8VC27HS" role="3clFbG">
<node concept="10QFUN" id="2tjs8VC29LP" role="3K4E3e">
<node concept="2OqwBi" id="2tjs8VC29LJ" role="10QFUP">
<node concept="2OqwBi" id="2tjs8VC29LK" role="2Oq$k0">
<node concept="37vLTw" id="2tjs8VC29LL" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC26Cy" resolve="owner" />
</node>
<node concept="2OwXpG" id="2tjs8VC29LM" role="2OqNvi">
<ref role="2Oxat5" node="2tjs8VC0WHe" resolve="token2value" />
</node>
</node>
<node concept="liA8E" id="2tjs8VC29LN" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.get(java.lang.Object)" resolve="get" />
<node concept="37vLTw" id="2tjs8VC29LO" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1Yjd" resolve="token" />
</node>
</node>
</node>
<node concept="16syzq" id="2tjs8VC2a1r" role="10QFUM">
<ref role="16sUi3" node="2tjs8VC1YjL" resolve="T" />
</node>
</node>
<node concept="10Nm6u" id="2tjs8VC29yP" role="3K4GZi" />
<node concept="3y3z36" id="2tjs8VC27ik" role="3K4Cdx">
<node concept="10Nm6u" id="2tjs8VC27w3" role="3uHU7w" />
<node concept="37vLTw" id="2tjs8VC26C_" role="3uHU7B">
<ref role="3cqZAo" node="2tjs8VC26Cy" resolve="owner" />
</node>
</node>
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC1YjL" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC1Yjb" role="jymVt" />
<node concept="3clFb_" id="2tjs8VC1NkJ" role="jymVt">
<property role="TrG5h" value="getOrSetValue" />
<node concept="3Tm6S6" id="1Ry9kf2s2dQ" role="1B3o_S" />
<node concept="37vLTG" id="2tjs8VC1OGQ" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC1OWd" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="2tjs8VC1Pmh" role="3clF46">
<property role="TrG5h" value="defaultValue" />
<node concept="3uibUv" id="2tjs8VC1QDR" role="1tU5fm">
<ref role="3uigEE" to="18ew:~Computable" resolve="Computable" />
<node concept="16syzq" id="2tjs8VC1WlB" role="11_B2D">
<ref role="16sUi3" node="2tjs8VC1Qh2" resolve="T" />
</node>
</node>
</node>
<node concept="16syzq" id="2tjs8VC2eWo" role="3clF45">
<ref role="16sUi3" node="2tjs8VC1Qh2" resolve="T" />
</node>
<node concept="3clFbS" id="2tjs8VC1NkN" role="3clF47">
<node concept="3cpWs8" id="2tjs8VC2b9c" role="3cqZAp">
<node concept="3cpWsn" id="2tjs8VC2b9d" role="3cpWs9">
<property role="TrG5h" value="owner" />
<node concept="3uibUv" id="2tjs8VC2b9a" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="1rXfSq" id="2tjs8VC2b9e" role="33vP2m">
<ref role="37wK5l" node="2tjs8VC22Ho" resolve="lookupOwner" />
<node concept="37vLTw" id="2tjs8VC2b9f" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1OGQ" resolve="token" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="2tjs8VC2bVQ" role="3cqZAp">
<node concept="3clFbS" id="2tjs8VC2bVS" role="3clFbx">
<node concept="3cpWs6" id="2tjs8VC2cKC" role="3cqZAp">
<node concept="10QFUN" id="2tjs8VC2day" role="3cqZAk">
<node concept="16syzq" id="2tjs8VC2dp6" role="10QFUM">
<ref role="16sUi3" node="2tjs8VC1Qh2" resolve="T" />
</node>
<node concept="2OqwBi" id="2tjs8VC2dOP" role="10QFUP">
<node concept="37vLTw" id="2tjs8VC2dBv" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC2b9d" resolve="owner" />
</node>
<node concept="liA8E" id="2tjs8VC2evJ" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC1Yjc" resolve="getValue" />
<node concept="37vLTw" id="2tjs8VC2eIi" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1OGQ" resolve="token" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3y3z36" id="2tjs8VC2cmA" role="3clFbw">
<node concept="10Nm6u" id="2tjs8VC2czs" role="3uHU7w" />
<node concept="37vLTw" id="2tjs8VC2c8O" role="3uHU7B">
<ref role="3cqZAo" node="2tjs8VC2b9d" resolve="owner" />
</node>
</node>
</node>
<node concept="3clFbH" id="2tjs8VC22g$" role="3cqZAp" />
<node concept="3cpWs8" id="2tjs8VC2iz1" role="3cqZAp">
<node concept="3cpWsn" id="2tjs8VC2iz2" role="3cpWs9">
<property role="TrG5h" value="value" />
<node concept="16syzq" id="2tjs8VC2iyR" role="1tU5fm">
<ref role="16sUi3" node="2tjs8VC1Qh2" resolve="T" />
</node>
<node concept="2OqwBi" id="2tjs8VC2iz3" role="33vP2m">
<node concept="37vLTw" id="2tjs8VC2iz4" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC1Pmh" resolve="defaultValue" />
</node>
<node concept="liA8E" id="2tjs8VC2iz5" role="2OqNvi">
<ref role="37wK5l" to="18ew:~Computable.compute()" resolve="compute" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC2gjI" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC2g_h" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC2gjG" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC0WHe" resolve="token2value" />
</node>
<node concept="liA8E" id="2tjs8VC2h3S" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.put(java.lang.Object,java.lang.Object)" resolve="put" />
<node concept="37vLTw" id="2tjs8VC2hxn" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC1OGQ" resolve="token" />
</node>
<node concept="37vLTw" id="2tjs8VC2iz6" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC2iz2" resolve="value" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC2jfU" role="3cqZAp">
<node concept="37vLTw" id="2tjs8VC2jfS" role="3clFbG">
<ref role="3cqZAo" node="2tjs8VC2iz2" resolve="value" />
</node>
</node>
</node>
<node concept="16euLQ" id="2tjs8VC1Qh2" role="16eVyc">
<property role="TrG5h" value="T" />
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC22rr" role="jymVt" />
<node concept="3clFb_" id="2tjs8VC22Ho" role="jymVt">
<property role="TrG5h" value="lookupOwner" />
<node concept="37vLTG" id="2tjs8VC23ZY" role="3clF46">
<property role="TrG5h" value="token" />
<node concept="3uibUv" id="2tjs8VC24eE" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="3uibUv" id="2tjs8VC23b8" role="3clF45">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
<node concept="3Tm6S6" id="2tjs8VC22YH" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC22Hs" role="3clF47">
<node concept="3clFbJ" id="2tjs8VC24Me" role="3cqZAp">
<node concept="3clFbS" id="2tjs8VC24Mf" role="3clFbx">
<node concept="3clFbJ" id="2tjs8VC24Mg" role="3cqZAp">
<node concept="3clFbS" id="2tjs8VC24Mh" role="3clFbx">
<node concept="3cpWs6" id="2tjs8VC24Mi" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC24Mj" role="3cqZAk">
<node concept="37vLTw" id="2tjs8VC24Mk" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC13tT" resolve="prev" />
</node>
<node concept="liA8E" id="2tjs8VC24Ml" role="2OqNvi">
<ref role="37wK5l" node="2tjs8VC22Ho" resolve="lookupOwner" />
<node concept="37vLTw" id="2tjs8VC24Mm" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC23ZY" resolve="token" />
</node>
</node>
</node>
</node>
</node>
<node concept="3y3z36" id="2tjs8VC24Mn" role="3clFbw">
<node concept="10Nm6u" id="2tjs8VC24Mo" role="3uHU7w" />
<node concept="37vLTw" id="2tjs8VC24Mp" role="3uHU7B">
<ref role="3cqZAo" node="2tjs8VC13tT" resolve="prev" />
</node>
</node>
</node>
<node concept="3clFbH" id="2tjs8VC24Mq" role="3cqZAp" />
<node concept="3cpWs6" id="2tjs8VC24Mr" role="3cqZAp">
<node concept="10Nm6u" id="2tjs8VC24Ms" role="3cqZAk" />
</node>
</node>
<node concept="3fqX7Q" id="2tjs8VC24Mt" role="3clFbw">
<node concept="2OqwBi" id="2tjs8VC24Mu" role="3fr31v">
<node concept="37vLTw" id="2tjs8VC24Mv" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC0WHe" resolve="token2value" />
</node>
<node concept="liA8E" id="2tjs8VC24Mw" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.containsKey(java.lang.Object)" resolve="containsKey" />
<node concept="37vLTw" id="2tjs8VC24Mx" role="37wK5m">
<ref role="3cqZAo" node="2tjs8VC23ZY" resolve="token" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2tjs8VC25Is" role="3cqZAp">
<node concept="Xjq3P" id="2tjs8VC25Iq" role="3clFbG" />
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC1N51" role="jymVt" />
<node concept="3clFb_" id="2tjs8VC1kVc" role="jymVt">
<property role="TrG5h" value="clear" />
<node concept="3cqZAl" id="2tjs8VC1kVe" role="3clF45" />
<node concept="3Tm6S6" id="2tjs8VC1lc0" role="1B3o_S" />
<node concept="3clFbS" id="2tjs8VC1kVg" role="3clF47">
<node concept="3clFbF" id="2tjs8VC1lEc" role="3cqZAp">
<node concept="2OqwBi" id="2tjs8VC1lS_" role="3clFbG">
<node concept="37vLTw" id="2tjs8VC1lEb" role="2Oq$k0">
<ref role="3cqZAo" node="2tjs8VC0WHe" resolve="token2value" />
</node>
<node concept="liA8E" id="2tjs8VC1mbI" role="2OqNvi">
<ref role="37wK5l" to="33ny:~Map.clear()" resolve="clear" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC1mof" role="jymVt" />
<node concept="2tJIrI" id="2tjs8VC19BF" role="jymVt" />
<node concept="312cEg" id="2tjs8VC0WHe" role="jymVt">
<property role="TrG5h" value="token2value" />
<node concept="3Tm6S6" id="2tjs8VC0WHf" role="1B3o_S" />
<node concept="3uibUv" id="2tjs8VC0WI8" role="1tU5fm">
<ref role="3uigEE" to="33ny:~Map" resolve="Map" />
<node concept="3uibUv" id="2tjs8VC0WIJ" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
<node concept="3uibUv" id="2tjs8VC0WJb" role="11_B2D">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="2ShNRf" id="2tjs8VC0WLW" role="33vP2m">
<node concept="1pGfFk" id="2tjs8VC0XV5" role="2ShVmc">
<ref role="37wK5l" to="33ny:~HashMap.&lt;init&gt;()" resolve="HashMap" />
<node concept="3uibUv" id="2tjs8VC0XZd" role="1pMfVU">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
<node concept="3uibUv" id="2tjs8VC0Y1s" role="1pMfVU">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC0WGi" role="jymVt" />
<node concept="312cEg" id="2tjs8VC13tT" role="jymVt">
<property role="TrG5h" value="prev" />
<node concept="3Tm6S6" id="2tjs8VC13tU" role="1B3o_S" />
<node concept="3uibUv" id="2tjs8VC13_k" role="1tU5fm">
<ref role="3uigEE" node="2tjs8VC0K0m" resolve="Memoizer" />
</node>
</node>
<node concept="2tJIrI" id="2tjs8VC13mA" role="jymVt" />
<node concept="3Tm1VV" id="2tjs8VC0K0n" role="1B3o_S" />
</node>
</model>

View File

@ -742,6 +742,7 @@
<plugin path="${artifacts.mps}/plugins/mps-core" />
<plugin path="${artifacts.mps}/plugins/mps-testing" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.runtime.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.runtime.jar" />
@ -1475,6 +1476,7 @@
<target name="test.check" depends="assemble">
<path id="mps.libraries.path">
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.runtime.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.runtime.jar" />

View File

@ -65,6 +65,7 @@
<module ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" kind="cl" />
<module ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)" kind="cl" />
<module ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" kind="cl" />
<module ref="f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)" kind="cl" />
<module ref="6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.coderules.typechecking)" kind="cl" />
<module ref="2d3c70e9-aab2-4870-8d8d-6036800e4103(jetbrains.mps.kernel)" kind="cl" />
<module ref="26e8f4ce-2a35-4f44-8065-e5ba154b18e9(jetbrains.mps.lang.coderules.runtime)" kind="cl" />
@ -230,6 +231,7 @@
<plugin path="${artifacts.mps}/plugins/mps-core" />
<plugin path="${artifacts.mps}/plugins/mps-testing" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.runtime.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.runtime.jar" />
@ -418,6 +420,7 @@
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.logging.runtime.jar" />
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.regexp.runtime.jar" />
<fileset file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.jar" />
<fileset file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.runtime.jar" />
<fileset file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.jar" />
<fileset file="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.runtime.jar" />
<fileset file="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.template.jar" />
@ -510,6 +513,7 @@
<target name="test.demo" depends="assemble">
<path id="mps.libraries.path">
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.runtime.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.runtime.jar" />

View File

@ -22,6 +22,7 @@
<import index="1g4i" ref="r:102178da-67ba-49f6-ba73-eb29fa352fe7(jetbrains.mps.coderules.typechecking)" />
<import index="tj24" ref="r:0fbbb63a-fd15-46e1-8136-78049f6d6e63(jetbrains.mps.coderules.typechecking.service)" />
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
<import index="lehm" ref="r:464fcc95-fddb-47d1-b620-592cbf6b8bf2(jetbrains.mps.coderules.runtime.memoizer)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
</imports>
<registry>
@ -3156,9 +3157,9 @@
<node concept="3Tmbuc" id="6EwjVjWt3FI" role="1B3o_S" />
<node concept="3clFbS" id="6EwjVjWt1yH" role="3clF47">
<node concept="3clFbF" id="6EwjVjWt1M_" role="3cqZAp">
<node concept="2YIFZM" id="6EwjVjWt1MT" role="3clFbG">
<ref role="37wK5l" to="hano:2tjs8VC2Blb" resolve="getOrPut" />
<ref role="1Pybhc" to="hano:2tjs8VC0K0m" resolve="Memoizer" />
<node concept="2YIFZM" id="5wYq9r5EDbM" role="3clFbG">
<ref role="37wK5l" to="lehm:2tjs8VC2Blb" resolve="getOrPut" />
<ref role="1Pybhc" to="lehm:2tjs8VC0K0m" resolve="Memoizer" />
<node concept="3VsKOn" id="6EwjVjWt2cm" role="37wK5m">
<ref role="3VsUkX" node="6EwjVjWt1pM" resolve="VarNames.Keeper" />
</node>

View File

@ -21,6 +21,7 @@
<dependency reexport="false">498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)</dependency>
<dependency reexport="false">bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)</dependency>
<dependency reexport="false">6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.coderules.typechecking)</dependency>
<dependency reexport="false">f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)</dependency>
</dependencies>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="11" />
@ -81,6 +82,7 @@
<module reference="498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="f97d84b2-8bad-4fdd-8ede-da17b3eacf4c(jetbrains.mps.coderules)" version="0" />
<module reference="f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)" version="0" />
<module reference="6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.coderules.typechecking)" version="0" />
<module reference="2d3c70e9-aab2-4870-8d8d-6036800e4103(jetbrains.mps.kernel)" version="0" />
<module reference="26e8f4ce-2a35-4f44-8065-e5ba154b18e9(jetbrains.mps.lang.coderules.runtime)" version="0" />

View File

@ -225,6 +225,11 @@
</node>
</node>
</node>
<node concept="1SiIV0" id="5wYq9r5EEtL" role="3bR37C">
<node concept="3bR9La" id="5wYq9r5EEtM" role="1SiIV1">
<ref role="3bR37D" to="zqd8:5wYq9r5EBDN" resolve="jetbrains.mps.coderules.runtime" />
</node>
</node>
</node>
<node concept="1E1JtA" id="7E7FS_VaVB_" role="2G$12L">
<property role="BnDLt" value="true" />

View File

@ -61,6 +61,7 @@
<module ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" kind="cl" />
<module ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)" kind="cl" />
<module ref="c7d01124-66d5-486d-8b50-7fdccb60b839(jetbrains.mps.baseLanguage.util)" kind="cl" />
<module ref="f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)" kind="cl" />
<module ref="6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.coderules.typechecking)" kind="cl" />
<module ref="517911e5-605f-4310-831b-10d44e0f5237(jetbrains.mps.controlflow)" kind="cl" />
<module ref="26e8f4ce-2a35-4f44-8065-e5ba154b18e9(jetbrains.mps.lang.coderules.runtime)" kind="cl" />
@ -1412,6 +1413,7 @@
<plugin path="${artifacts.mps}/plugins/mps-core" />
<plugin path="${artifacts.mps}/plugins/mps-testing" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.runtime.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.test.jar" />
<library file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.testlang.sandbox.jar" />
@ -1628,6 +1630,7 @@
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.logging.runtime.jar" />
<fileset file="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.scopes.jar" />
<fileset file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.jar" />
<fileset file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.runtime.jar" />
<fileset file="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.jar" />
<fileset file="${artifacts.coderules}/deploy/jetbrains.mps.controlflow.jar" />
<fileset file="${artifacts.coderules}/deploy/jetbrains.mps.lang.coderules.jar" />
@ -2941,6 +2944,7 @@
<target name="test.testconfig" depends="assemble">
<path id="mps.libraries.path">
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.runtime.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.test.jar" />
<pathelement location="${artifacts.coderules}/deploy/jetbrains.mps.coderules.typechecking.testlang.sandbox.jar" />

View File

@ -23,6 +23,7 @@
<dependency reexport="false">498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)</dependency>
<dependency reexport="false">4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462(jetbrains.mps.lang.typechecking)</dependency>
<dependency reexport="false">c7d01124-66d5-486d-8b50-7fdccb60b839(jetbrains.mps.baseLanguage.util)</dependency>
<dependency reexport="false">f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)</dependency>
</dependencies>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="11" />
@ -75,6 +76,7 @@
<module reference="c7d01124-66d5-486d-8b50-7fdccb60b839(jetbrains.mps.baseLanguage.util)" version="0" />
<module reference="0fda14cc-a416-4c81-869a-2175d8b3325d(jetbrains.mps.baseLanguageExt)" version="0" />
<module reference="f97d84b2-8bad-4fdd-8ede-da17b3eacf4c(jetbrains.mps.coderules)" version="0" />
<module reference="f113d56b-63e3-4120-a89c-2f5dcb8c6290(jetbrains.mps.coderules.runtime)" version="0" />
<module reference="6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.coderules.typechecking)" version="0" />
<module reference="517911e5-605f-4310-831b-10d44e0f5237(jetbrains.mps.controlflow)" version="0" />
<module reference="2d3c70e9-aab2-4870-8d8d-6036800e4103(jetbrains.mps.kernel)" version="0" />

View File

@ -32,6 +32,7 @@
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
<import index="guwi" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.io(JDK/)" />
<import index="pz2c" ref="r:2a308ea0-c7e3-4fa5-a624-ad74ee5cfab5(jetbrains.mps.baseLanguage.util)" />
<import index="lehm" ref="r:464fcc95-fddb-47d1-b620-592cbf6b8bf2(jetbrains.mps.coderules.runtime.memoizer)" />
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
</imports>
<registry>
@ -1946,9 +1947,9 @@
<node concept="3uibUv" id="3bgqfmm02cx" role="1tU5fm">
<ref role="3uigEE" node="rZZ6H4Y2j" resolve="ClassHierarchyGraph.Vertex" />
</node>
<node concept="2YIFZM" id="3bgqfmm02cy" role="33vP2m">
<ref role="1Pybhc" to="hano:2tjs8VC0K0m" resolve="Memoizer" />
<ref role="37wK5l" to="hano:2tjs8VC2Blb" resolve="getOrPut" />
<node concept="2YIFZM" id="5wYq9r5EDbK" role="33vP2m">
<ref role="37wK5l" to="lehm:2tjs8VC2Blb" resolve="getOrPut" />
<ref role="1Pybhc" to="lehm:2tjs8VC0K0m" resolve="Memoizer" />
<node concept="2OqwBi" id="3bgqfmm02cz" role="37wK5m">
<node concept="3A2sRY" id="3bgqfmm02c$" role="2Oq$k0">
<ref role="3A2yKK" node="6_5E9TNz50W" resolve="cls" />
@ -38078,9 +38079,9 @@
<node concept="3uibUv" id="4JBuioHZ_Z3" role="1tU5fm">
<ref role="3uigEE" node="rZZ6H4Y2j" resolve="ClassHierarchyGraph.Vertex" />
</node>
<node concept="2YIFZM" id="4JBuioHZA$F" role="33vP2m">
<ref role="37wK5l" to="hano:2tjs8VC2Blb" resolve="getOrPut" />
<ref role="1Pybhc" to="hano:2tjs8VC0K0m" resolve="Memoizer" />
<node concept="2YIFZM" id="5wYq9r5EDbL" role="33vP2m">
<ref role="37wK5l" to="lehm:2tjs8VC2Blb" resolve="getOrPut" />
<ref role="1Pybhc" to="lehm:2tjs8VC0K0m" resolve="Memoizer" />
<node concept="2OqwBi" id="4JBuioIcVWP" role="37wK5m">
<node concept="3A2sRY" id="4JBuioHZA$G" role="2Oq$k0">
<ref role="3A2yKK" node="29sKO70xfxm" resolve="cls" />

View File

@ -347,6 +347,11 @@
</node>
</node>
</node>
<node concept="1SiIV0" id="5wYq9r5EEul" role="3bR37C">
<node concept="3bR9La" id="5wYq9r5EEum" role="1SiIV1">
<ref role="3bR37D" to="zqd8:5wYq9r5EBDN" resolve="jetbrains.mps.coderules.runtime" />
</node>
</node>
</node>
<node concept="1E1JtD" id="3DveV8qz3Qm" role="2G$12L">
<property role="TrG5h" value="jetbrains.mps.baseLanguage.javadocExt" />