Types for FeatureReferenceExpression

This commit is contained in:
Fedor Isakov 2024-08-06 12:37:57 +02:00
parent ef6e282c83
commit 6098ee6fc3
4 changed files with 207 additions and 1 deletions

View File

@ -4942,6 +4942,7 @@
<module ref="6a5b4bb9-0a56-4618-aa9a-7068c528ce90(jetbrains.mps.lang.coderulesExt)" kind="cl" />
<module ref="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" kind="cl" />
<module ref="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462(jetbrains.mps.lang.typechecking)" kind="cl" />
<module ref="ad4d7d30-3da5-4d56-8273-c9d815b12234(jetbrains.mps.logicExt)" kind="cl" />
</dependencies>
<uses>
<language id="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" />
@ -10638,6 +10639,7 @@
<module ref="6a5b4bb9-0a56-4618-aa9a-7068c528ce90(jetbrains.mps.lang.coderulesExt)" kind="cl" />
<module ref="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" kind="cl" />
<module ref="4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462(jetbrains.mps.lang.typechecking)" kind="cl" />
<module ref="ad4d7d30-3da5-4d56-8273-c9d815b12234(jetbrains.mps.logicExt)" kind="cl" />
</dependencies>
<uses>
<language id="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" />
@ -15166,7 +15168,7 @@
</copy>
</target>
<target name="java.compile.jetbrains.mps.lang.typecheckingExt" depends="java.compile.jetbrains.mps.baseLanguageExt, java.compile.jetbrains.mps.lang.coderulesExt, fetchDependencies">
<target name="java.compile.jetbrains.mps.lang.typecheckingExt" depends="java.compile.jetbrains.mps.baseLanguageExt, java.compile.jetbrains.mps.lang.coderulesExt, java.compile.jetbrains.mps.logicExt, fetchDependencies">
<mkdir dir="${mps.macro.mpscore_home}/languages/jetbrains.mps.lang.typecheckingExt/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typecheckingExt" />
<javac destdir="${build.tmp}/java/out/jetbrains.mps.lang.typecheckingExt" fork="true" encoding="utf8" includeantruntime="false" debug="true">
@ -15202,6 +15204,7 @@
<fileset file="${artifacts.mps}/lib/mps-scripts-rt.jar" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.baseLanguageExt" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.lang.coderulesExt" />
<pathelement path="${build.tmp}/java/out/jetbrains.mps.logicExt" />
<fileset file="${artifacts.mps}/lib/annotations.jar" />
<fileset file="${artifacts.mps}/lib/app.jar" />
<fileset file="${artifacts.mps}/lib/app-client.jar" />

View File

@ -76,6 +76,7 @@
<dependencies>
<dependency reexport="false">0fda14cc-a416-4c81-869a-2175d8b3325d(jetbrains.mps.baseLanguageExt)</dependency>
<dependency reexport="false">c4803b19-6d89-4a3b-bf82-390769514add(jetbrains.mps.lang.coderules)</dependency>
<dependency reexport="false">ad4d7d30-3da5-4d56-8273-c9d815b12234(jetbrains.mps.logicExt)</dependency>
</dependencies>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
@ -165,6 +166,7 @@
<module reference="35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)" version="0" />
<module reference="bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)" version="0" />
<module reference="a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)" version="0" />
<module reference="ad4d7d30-3da5-4d56-8273-c9d815b12234(jetbrains.mps.logicExt)" version="0" />
</dependencyVersions>
<extendedLanguages>
<extendedLanguage>4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462(jetbrains.mps.lang.typechecking)</extendedLanguage>

View File

@ -9,6 +9,8 @@
<import index="y4ek" ref="r:9071f0f9-8ac0-4a08-8867-06e41ca1c7d9(jetbrains.mps.lang.coderulesExt.types)" />
<import index="zfi7" ref="r:39840d4e-f61c-4452-88c5-75b1eb10e892(jetbrains.mps.lang.typechecking.structure)" />
<import index="kqnc" ref="r:92b96158-68e6-4f53-a32b-36e2b456fe01(jetbrains.mps.baseLanguageExt.types)" />
<import index="wq2x" ref="r:83137295-aa87-45e8-b0c0-ede2adf2a396(jetbrains.mps.lang.coderules.structure)" />
<import index="54p4" ref="r:4756f1c3-ee0d-4da9-817d-c7dad8ea74b8(jetbrains.mps.logicExt.types)" />
<import index="h103" ref="r:9c80bc3e-1982-4e7d-8fe4-1b25a1c02635(jetbrains.mps.lang.typechecking.behavior)" implicit="true" />
</imports>
<registry>
@ -38,7 +40,32 @@
<concept id="8829335963591572611" name="jetbrains.mps.logic.structure.LogicalVariableDeclaration" flags="ng" index="aZer4" />
</language>
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
<concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
<reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
</concept>
<concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
<concept id="7453996997717780434" name="jetbrains.mps.lang.smodel.structure.Node_GetSConceptOperation" flags="nn" index="2yIwOk" />
<concept id="2396822768958367367" name="jetbrains.mps.lang.smodel.structure.AbstractTypeCastExpression" flags="nn" index="$5XWr">
<child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
<child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
</concept>
<concept id="1154546950173" name="jetbrains.mps.lang.smodel.structure.ConceptReference" flags="ng" index="3gn64h">
<reference id="1154546997487" name="concept" index="3gnhBz" />
</concept>
<concept id="6039268229364358244" name="jetbrains.mps.lang.smodel.structure.ExactConceptCase" flags="ng" index="1pnPoh">
<child id="6039268229364358388" name="body" index="1pnPq1" />
<child id="6039268229364358387" name="concept" index="1pnPq6" />
</concept>
<concept id="5944356402132808749" name="jetbrains.mps.lang.smodel.structure.ConceptSwitchStatement" flags="nn" index="1_3QMa">
<child id="5944356402132808753" name="case" index="1_3QMm" />
<child id="5944356402132808752" name="expression" index="1_3QMn" />
</concept>
<concept id="1140137987495" name="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" flags="nn" index="1PxgMI">
<property id="1238684351431" name="asCast" index="1BlNFB" />
</concept>
<concept id="1138056143562" name="jetbrains.mps.lang.smodel.structure.SLinkAccess" flags="nn" index="3TrEf2">
<reference id="1138056516764" name="link" index="3Tt5mk" />
</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="ngI" index="TrEIO">
@ -46,6 +73,14 @@
</concept>
</language>
<language id="c4803b19-6d89-4a3b-bf82-390769514add" name="jetbrains.mps.lang.coderules">
<concept id="861509610434242029" name="jetbrains.mps.lang.coderules.structure.TermConstructor" flags="ng" index="ns1u0">
<reference id="861509610434243078" name="decl" index="ns1xF" />
<child id="861509610434243076" name="override" index="ns1xD" />
</concept>
<concept id="861509610434435669" name="jetbrains.mps.lang.coderules.structure.TermFeatureOverride" flags="ng" index="nsMwS">
<reference id="861509610434435672" name="feature" index="nsMwP" />
<child id="1149537088045275069" name="item" index="iSaTp" />
</concept>
<concept id="6691972578451976398" name="jetbrains.mps.lang.coderules.structure.RuleInputSpecification" flags="ng" index="2t___k">
<reference id="6691972578451990912" name="applicableConcept" index="2t_S0q" />
<child id="6691972578451986151" name="input" index="2t_VXX" />
@ -55,6 +90,11 @@
<child id="3575255234175157601" name="template" index="1nK1Vg" />
</concept>
<concept id="2381360340662937504" name="jetbrains.mps.lang.coderules.structure.TermType" flags="ig" index="32pEOW" />
<concept id="6097203247182936001" name="jetbrains.mps.lang.coderules.structure.ExpandMacroConstraint" flags="ng" index="3jbYBd">
<reference id="6097203247182937177" name="template" index="3jbY9l" />
<child id="6097203247182937145" name="input" index="3jbY8P" />
<child id="6097203247182937143" name="logical" index="3jbY8V" />
</concept>
<concept id="6097203247184206287" name="jetbrains.mps.lang.coderules.structure.CallMacroConstraint" flags="ng" index="3jm4v3">
<reference id="6097203247184207800" name="template" index="3jm46O" />
<child id="6097203247184212024" name="logical" index="3jm6SO" />
@ -90,6 +130,9 @@
<child id="2316688792939037645" name="logic" index="3Ip0Jz" />
</concept>
<concept id="7368070394766966388" name="jetbrains.mps.lang.coderules.structure.Body" flags="ng" index="3Aq9E8" />
<concept id="7368070394766978092" name="jetbrains.mps.lang.coderules.structure.EmitConstraintStatement" flags="ng" index="3Aqczg">
<child id="7368070394767031348" name="constraint" index="3Aqpz8" />
</concept>
<concept id="7368070394767045637" name="jetbrains.mps.lang.coderules.structure.UserConstraint" flags="ng" index="3Aqt3T">
<reference id="7368070394767091750" name="template" index="3AqCNq" />
<child id="7368070394768117915" name="argument" index="3AunhB" />
@ -100,6 +143,9 @@
<concept id="2316688792938825384" name="jetbrains.mps.lang.coderules.structure.LogicalClauseList" flags="ng" index="3I6sU6">
<child id="2316688792938825385" name="clauses" index="3I6sU7" />
</concept>
<concept id="2316688792939428589" name="jetbrains.mps.lang.coderules.structure.TemplateLogicalClause" flags="ng" index="3IrJb3">
<child id="2316688792939428590" name="code" index="3IrJb0" />
</concept>
<concept id="965748826975413063" name="jetbrains.mps.lang.coderules.structure.RulePartParameterDeclaration" flags="ng" index="3NuqgR" />
</language>
</registry>
@ -180,6 +226,156 @@
</node>
</node>
</node>
<node concept="1nLNMY" id="5O6oUvr2Hes" role="1nK1Vg">
<property role="TrG5h" value="featureReferenceExpression" />
<node concept="3clFbS" id="5O6oUvr2Het" role="1nLNMH">
<node concept="1nLNNL" id="5O6oUvr2HeT" role="3cqZAp">
<node concept="1nLNMm" id="5O6oUvr2HeU" role="1nLNNK">
<node concept="3Aq93q" id="5O6oUvr2HeV" role="1nLNMb">
<property role="3ArMco" value="true" />
<node concept="3I6sU6" id="5O6oUvr2HeW" role="3Ip0Jz">
<node concept="3I6s7M" id="5O6oUvr2HeY" role="3I6sU7">
<node concept="3Aqt3T" id="5O6oUvr2HeX" role="3I6s78">
<ref role="3AqCNq" to="kqnc:34$A1MfabR$" resolve="checkAll" />
</node>
</node>
</node>
</node>
<node concept="3NuqgR" id="5O6oUvr2Hf0" role="0Rg$4">
<node concept="aZer4" id="5O6oUvr2Hf1" role="3XD1gS">
<property role="TrG5h" value="T" />
</node>
<node concept="aZer4" id="5O6oUvr3bPb" role="3XD1gS">
<property role="TrG5h" value="V" />
</node>
<node concept="32pEOW" id="5O6oUvr2Hfa" role="3vLBG7" />
</node>
<node concept="3xSepi" id="5O6oUvr2Hfq" role="3xSepv">
<node concept="3Aq9E8" id="5O6oUvr2Hfr" role="3xSepj">
<node concept="3I6sU6" id="5O6oUvr2Hfs" role="3Ip0Jz">
<node concept="3IrJb3" id="5O6oUvr3bIO" role="3I6sU7">
<node concept="3clFbS" id="5O6oUvr3bIP" role="3IrJb0">
<node concept="1_3QMa" id="5O6oUvr3bD1" role="3cqZAp">
<node concept="1pnPoh" id="5O6oUvr3bF9" role="1_3QMm">
<node concept="3gn64h" id="5O6oUvr3bFb" role="1pnPq6">
<ref role="3gnhBz" to="wq2x:JOGAOsxm2z" resolve="ChildFeature" />
</node>
<node concept="3clFbS" id="5O6oUvr3bFd" role="1pnPq1">
<node concept="3Aqczg" id="5O6oUvr3bLg" role="3cqZAp">
<node concept="3Aqt3T" id="5O6oUvr3bLf" role="3Aqpz8">
<ref role="3AqCNq" to="kqnc:34$A1MfhdDv" resolve="typeOf" />
<node concept="37jhX" id="5O6oUvr3bLk" role="3AunhB">
<node concept="3A2sRY" id="5O6oUvr3bLi" role="37jj2">
<ref role="3A2yKK" node="5O6oUvr2Hev" resolve="fre" />
</node>
</node>
<node concept="ns1u0" id="5O6oUvr3bLv" role="3AunhB">
<ref role="ns1xF" to="y4ek:7LI_gNNfeK7" resolve="term" />
</node>
</node>
</node>
</node>
</node>
<node concept="1pnPoh" id="5O6oUvr3bFg" role="1_3QMm">
<node concept="3gn64h" id="5O6oUvr3bFi" role="1pnPq6">
<ref role="3gnhBz" to="wq2x:JOGAOsxpXw" resolve="ListFeature" />
</node>
<node concept="3clFbS" id="5O6oUvr3bFk" role="1pnPq1">
<node concept="3Aqczg" id="5O6oUvr3bLw" role="3cqZAp">
<node concept="3Aqt3T" id="5O6oUvr3bLx" role="3Aqpz8">
<ref role="3AqCNq" to="kqnc:34$A1MfhdDv" resolve="typeOf" />
<node concept="37jhX" id="5O6oUvr3bLy" role="3AunhB">
<node concept="3A2sRY" id="5O6oUvr3bLz" role="37jj2">
<ref role="3A2yKK" node="5O6oUvr2Hev" resolve="fre" />
</node>
</node>
<node concept="ns1u0" id="5O6oUvr3bOE" role="3AunhB">
<ref role="ns1xF" to="y4ek:7LI_gNNfeOT" resolve="termList" />
</node>
</node>
</node>
</node>
</node>
<node concept="1pnPoh" id="5O6oUvr3bFn" role="1_3QMm">
<node concept="3gn64h" id="5O6oUvr3bFp" role="1pnPq6">
<ref role="3gnhBz" to="wq2x:JOGAOsxnj6" resolve="ValueFeature" />
</node>
<node concept="3clFbS" id="5O6oUvr3bFr" role="1pnPq1">
<node concept="3Aqczg" id="5O6oUvr3bP9" role="3cqZAp">
<node concept="3jbYBd" id="5O6oUvr3bP6" role="3Aqpz8">
<ref role="3jbY9l" to="kqnc:5itBwMau8m1" resolve="lift" />
<node concept="2OqwBi" id="5O6oUvr3c_5" role="3jbY8P">
<node concept="1PxgMI" id="5O6oUvr3cpi" role="2Oq$k0">
<property role="1BlNFB" value="true" />
<node concept="chp4Y" id="5O6oUvr3cqC" role="3oSUPX">
<ref role="cht4Q" to="wq2x:JOGAOsxnj6" resolve="ValueFeature" />
</node>
<node concept="2OqwBi" id="5O6oUvr3bXO" role="1m5AlR">
<node concept="3A2sRY" id="5O6oUvr3bPB" role="2Oq$k0">
<ref role="3A2yKK" node="5O6oUvr2Hev" resolve="fre" />
</node>
<node concept="3TrEf2" id="5O6oUvr3cdj" role="2OqNvi">
<ref role="3Tt5mk" to="zfi7:1vAI4X$MlAp" resolve="feature" />
</node>
</node>
</node>
<node concept="3TrEf2" id="5O6oUvr3d6l" role="2OqNvi">
<ref role="3Tt5mk" to="wq2x:1vAI4X$P8hj" resolve="type" />
</node>
</node>
<node concept="a7P8L" id="5O6oUvr3bPx" role="3jbY8V">
<ref role="a7OzE" node="5O6oUvr3bPb" resolve="V" />
</node>
</node>
</node>
<node concept="3Aqczg" id="5O6oUvr3d8N" role="3cqZAp">
<node concept="3Aqt3T" id="5O6oUvr3d8M" role="3Aqpz8">
<ref role="3AqCNq" to="kqnc:34$A1MfhdDv" resolve="typeOf" />
<node concept="37jhX" id="5O6oUvr3d8R" role="3AunhB">
<node concept="3A2sRY" id="5O6oUvr3d8P" role="37jj2">
<ref role="3A2yKK" node="5O6oUvr2Hev" resolve="fre" />
</node>
</node>
<node concept="ns1u0" id="5O6oUvr3drz" role="3AunhB">
<ref role="ns1xF" to="54p4:7LI_gNMkMFB" resolve="logical" />
<node concept="nsMwS" id="5O6oUvr3dr$" role="ns1xD">
<ref role="nsMwP" to="54p4:7LI_gNMpTBn" resolve="dataType" />
<node concept="a7P8L" id="5O6oUvr3dr_" role="iSaTp">
<ref role="a7OzE" node="5O6oUvr3bPb" resolve="V" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="5O6oUvr3bD5" role="1_3QMn">
<node concept="2OqwBi" id="5O6oUvr3bD6" role="2Oq$k0">
<node concept="3A2sRY" id="5O6oUvr3bD7" role="2Oq$k0">
<ref role="3A2yKK" node="5O6oUvr2Hev" resolve="fre" />
</node>
<node concept="3TrEf2" id="5O6oUvr3bD8" role="2OqNvi">
<ref role="3Tt5mk" to="zfi7:1vAI4X$MlAp" resolve="feature" />
</node>
</node>
<node concept="2yIwOk" id="5O6oUvr3bD9" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2t___k" id="5O6oUvr2Heu" role="1nLNMg">
<ref role="2t_S0q" to="zfi7:1vAI4X$MkW8" resolve="FeatureReferenceExpression" />
<node concept="3A20r5" id="5O6oUvr2Hev" role="2t_VXX">
<property role="TrG5h" value="fre" />
</node>
</node>
</node>
</node>
</model>

View File

@ -3699,6 +3699,11 @@
<ref role="3bR37D" to="zqd8:7BVjoXzUx6U" resolve="jetbrains.mps.lang.coderules" />
</node>
</node>
<node concept="1SiIV0" id="5O6oUvr3g1O" role="3bR37C">
<node concept="3bR9La" id="5O6oUvr3g1P" role="1SiIV1">
<ref role="3bR37D" node="7LI_gNMBoG$" resolve="jetbrains.mps.logicExt" />
</node>
</node>
</node>
</node>
<node concept="2G$12M" id="vrUbzjCdwT" role="3989C9">