Skip to content

Commit 3e7b892

Browse files
committed
support type overload for tolerance expression
* enhanced assertion failure msg for AssertTestItem
1 parent 0da165b commit 3e7b892

File tree

4 files changed

+408
-154
lines changed

4 files changed

+408
-154
lines changed

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.simpleTypes/models/typesystem.mps

Lines changed: 196 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
<import index="pbu6" ref="r:83e946de-2a7f-4a4c-b3c9-4f671aa7f2db(org.iets3.core.expr.base.behavior)" />
1616
<import index="xlxw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.math(JDK/)" />
1717
<import index="xfg9" ref="r:ac28053f-2041-47f6-806b-ecfaca05a64a(org.iets3.core.expr.base.runtime.runtime)" />
18+
<import index="tpd4" ref="r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)" />
19+
<import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" />
1820
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
1921
</imports>
2022
<registry>
@@ -120,11 +122,19 @@
120122
</concept>
121123
</language>
122124
<language id="3a13115c-633c-4c5c-bbcc-75c4219e9555" name="jetbrains.mps.lang.quotation">
125+
<concept id="5455284157993911077" name="jetbrains.mps.lang.quotation.structure.NodeBuilderInitProperty" flags="ng" index="2pJxcG">
126+
<reference id="5455284157993911078" name="property" index="2pJxcJ" />
127+
<child id="1595412875168045201" name="initValue" index="28ntcv" />
128+
</concept>
123129
<concept id="5455284157993863837" name="jetbrains.mps.lang.quotation.structure.NodeBuilder" flags="nn" index="2pJPEk">
124130
<child id="5455284157993863838" name="quotedNode" index="2pJPEn" />
125131
</concept>
126132
<concept id="5455284157993863840" name="jetbrains.mps.lang.quotation.structure.NodeBuilderNode" flags="nn" index="2pJPED">
127133
<reference id="5455284157993910961" name="concept" index="2pJxaS" />
134+
<child id="5455284157993911099" name="values" index="2pJxcM" />
135+
</concept>
136+
<concept id="6985522012210254362" name="jetbrains.mps.lang.quotation.structure.NodeBuilderPropertyExpression" flags="nn" index="WxPPo">
137+
<child id="6985522012210254363" name="expression" index="WxPPp" />
128138
</concept>
129139
</language>
130140
<language id="7a5dda62-9140-4668-ab76-d5ed1746f2b2" name="jetbrains.mps.lang.typesystem">
@@ -189,6 +199,11 @@
189199
<concept id="1236083146670" name="jetbrains.mps.lang.typesystem.structure.OverloadedOperatorTypeFunction" flags="in" index="3ciZUL" />
190200
<concept id="1236083209648" name="jetbrains.mps.lang.typesystem.structure.LeftOperandType_parameter" flags="nn" index="3cjfiJ" />
191201
<concept id="1236083248858" name="jetbrains.mps.lang.typesystem.structure.RightOperandType_parameter" flags="nn" index="3cjoZ5" />
202+
<concept id="1236163200695" name="jetbrains.mps.lang.typesystem.structure.GetOperationType" flags="nn" index="3h4ouC">
203+
<child id="1236163216864" name="operation" index="3h4sjZ" />
204+
<child id="1236163223950" name="rightOperandType" index="3h4u2h" />
205+
<child id="1236163223573" name="leftOperandType" index="3h4u4a" />
206+
</concept>
192207
<concept id="1236165709895" name="jetbrains.mps.lang.typesystem.structure.OverloadedOpRulesContainer" flags="ng" index="3hdX5o">
193208
<child id="1236165725858" name="rule" index="3he0YX" />
194209
</concept>
@@ -197,6 +212,10 @@
197212
<child id="3937244445246642781" name="nodeToReport" index="1urrMF" />
198213
</concept>
199214
<concept id="3592071576955708904" name="jetbrains.mps.lang.typesystem.structure.IsReplacementRuleApplicable_ConceptFunction" flags="in" index="1xSnZT" />
215+
<concept id="1176543928247" name="jetbrains.mps.lang.typesystem.structure.IsSubtypeExpression" flags="nn" index="3JuTUA">
216+
<child id="1176543945045" name="subtypeExpression" index="3JuY14" />
217+
<child id="1176543950311" name="supertypeExpression" index="3JuZjQ" />
218+
</concept>
200219
<concept id="1176544042499" name="jetbrains.mps.lang.typesystem.structure.Node_TypeOperation" flags="nn" index="3JvlWi" />
201220
<concept id="6136676636349908958" name="jetbrains.mps.lang.typesystem.structure.OverloadedOpIsApplicableFunction" flags="in" index="1QeDOX" />
202221
<concept id="1174642788531" name="jetbrains.mps.lang.typesystem.structure.ConceptReference" flags="ig" index="1YaCAy">
@@ -244,6 +263,7 @@
244263
<concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
245264
<child id="1177027386292" name="conceptArgument" index="cj9EA" />
246265
</concept>
266+
<concept id="1172008320231" name="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation" flags="nn" index="3x8VRR" />
247267
<concept id="1144101972840" name="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" flags="ng" index="1xMEDy">
248268
<child id="1207343664468" name="conceptArgument" index="ri$Ld" />
249269
</concept>
@@ -2555,6 +2575,32 @@
25552575
</node>
25562576
</node>
25572577
</node>
2578+
<node concept="3ciAk0" id="5PdB3P1sBNZ" role="3he0YX">
2579+
<node concept="3gn64h" id="5PdB3P1sC0y" role="32tDTA">
2580+
<ref role="3gnhBz" to="5qo5:4399ITS_dMM" resolve="ToleranceExpr" />
2581+
</node>
2582+
<node concept="3ciZUL" id="5PdB3P1sBOj" role="32tDT$">
2583+
<node concept="3clFbS" id="5PdB3P1sBOo" role="2VODD2">
2584+
<node concept="3clFbF" id="5PdB3P1sCTI" role="3cqZAp">
2585+
<node concept="2pJPEk" id="5PdB3P1sCTG" role="3clFbG">
2586+
<node concept="2pJPED" id="5PdB3P1sCXy" role="2pJPEn">
2587+
<ref role="2pJxaS" to="5qo5:4rZeNQ6Oetc" resolve="RealType" />
2588+
</node>
2589+
</node>
2590+
</node>
2591+
</node>
2592+
</node>
2593+
<node concept="2pJPEk" id="5PdB3P1sCRg" role="3ciSkW">
2594+
<node concept="2pJPED" id="5PdB3P1sCRA" role="2pJPEn">
2595+
<ref role="2pJxaS" to="5qo5:4rZeNQ6Oetc" resolve="RealType" />
2596+
</node>
2597+
</node>
2598+
<node concept="2pJPEk" id="5PdB3P1sCSA" role="3ciSnv">
2599+
<node concept="2pJPED" id="5PdB3P1sCSB" role="2pJPEn">
2600+
<ref role="2pJxaS" to="5qo5:4rZeNQ6Oetc" resolve="RealType" />
2601+
</node>
2602+
</node>
2603+
</node>
25582604
</node>
25592605
<node concept="3hdX5o" id="5ScITQbnlXA">
25602606
<property role="TrG5h" value="unary" />
@@ -4852,67 +4898,166 @@
48524898
<node concept="1YbPZF" id="4399ITSA5yW">
48534899
<property role="TrG5h" value="typeof_ToleranceExpr" />
48544900
<node concept="3clFbS" id="4399ITSA5yX" role="18ibNy">
4855-
<node concept="1Z5TYs" id="4399ITSA5NP" role="3cqZAp">
4856-
<node concept="mw_s8" id="4399ITSA5Rb" role="1ZfhKB">
4857-
<node concept="1Z2H0r" id="4399ITSA5R7" role="mwGJk">
4858-
<node concept="2OqwBi" id="4399ITSA62A" role="1Z2MuG">
4859-
<node concept="1YBJjd" id="4399ITSA5Rv" role="2Oq$k0">
4860-
<ref role="1YBMHb" node="4399ITSA5yZ" resolve="te" />
4901+
<node concept="nvevp" id="5PdB3P1sxN9" role="3cqZAp">
4902+
<node concept="3clFbS" id="5PdB3P1sxNb" role="nvhr_">
4903+
<node concept="nvevp" id="5PdB3P1syp2" role="3cqZAp">
4904+
<node concept="3clFbS" id="5PdB3P1syp3" role="nvhr_">
4905+
<node concept="3cpWs8" id="5PdB3P1sz$z" role="3cqZAp">
4906+
<node concept="3cpWsn" id="5PdB3P1sz$$" role="3cpWs9">
4907+
<property role="TrG5h" value="opType" />
4908+
<node concept="3Tqbb2" id="5PdB3P1szqu" role="1tU5fm" />
4909+
<node concept="3h4ouC" id="5PdB3P1sz$_" role="33vP2m">
4910+
<node concept="1YBJjd" id="5PdB3P1sz$A" role="3h4sjZ">
4911+
<ref role="1YBMHb" node="4399ITSA5yZ" resolve="te" />
4912+
</node>
4913+
<node concept="2X3wrD" id="5PdB3P1sz$B" role="3h4u4a">
4914+
<ref role="2X3Bk0" node="5PdB3P1sxNf" resolve="valueType" />
4915+
</node>
4916+
<node concept="2X3wrD" id="5PdB3P1sz$C" role="3h4u2h">
4917+
<ref role="2X3Bk0" node="5PdB3P1syp5" resolve="toleranceType" />
4918+
</node>
4919+
</node>
4920+
</node>
48614921
</node>
4862-
<node concept="3TrEf2" id="4399ITSA6m6" role="2OqNvi">
4863-
<ref role="3Tt5mk" to="5qo5:4399ITS_ea3" resolve="value" />
4922+
<node concept="3clFbH" id="5PdB3P1sNY4" role="3cqZAp" />
4923+
<node concept="3clFbJ" id="5PdB3P1sLHd" role="3cqZAp">
4924+
<node concept="3clFbS" id="5PdB3P1sLHf" role="3clFbx">
4925+
<node concept="1Z5TYs" id="4399ITSA5NP" role="3cqZAp">
4926+
<node concept="mw_s8" id="5PdB3P1szIt" role="1ZfhKB">
4927+
<node concept="37vLTw" id="5PdB3P1szIn" role="mwGJk">
4928+
<ref role="3cqZAo" node="5PdB3P1sz$$" resolve="opType" />
4929+
</node>
4930+
</node>
4931+
<node concept="mw_s8" id="4399ITSA5NS" role="1ZfhK$">
4932+
<node concept="1Z2H0r" id="4399ITSA5CU" role="mwGJk">
4933+
<node concept="1YBJjd" id="4399ITSA5G7" role="1Z2MuG">
4934+
<ref role="1YBMHb" node="4399ITSA5yZ" resolve="te" />
4935+
</node>
4936+
</node>
4937+
</node>
4938+
</node>
4939+
</node>
4940+
<node concept="1Wc70l" id="5PdB3P1sMit" role="3clFbw">
4941+
<node concept="3fqX7Q" id="5PdB3P1sMmM" role="3uHU7w">
4942+
<node concept="3JuTUA" id="5PdB3P1sMmO" role="3fr31v">
4943+
<node concept="37vLTw" id="5PdB3P1sO6K" role="3JuY14">
4944+
<ref role="3cqZAo" node="5PdB3P1sz$$" resolve="opType" />
4945+
</node>
4946+
<node concept="2pJPEk" id="5PdB3P1sMnr" role="3JuZjQ">
4947+
<node concept="2pJPED" id="5PdB3P1sO1G" role="2pJPEn">
4948+
<ref role="2pJxaS" to="tpd4:hfSilrT" resolve="RuntimeErrorType" />
4949+
</node>
4950+
</node>
4951+
</node>
4952+
</node>
4953+
<node concept="2OqwBi" id="5PdB3P1sLQd" role="3uHU7B">
4954+
<node concept="37vLTw" id="5PdB3P1sLHE" role="2Oq$k0">
4955+
<ref role="3cqZAo" node="5PdB3P1sz$$" resolve="opType" />
4956+
</node>
4957+
<node concept="3x8VRR" id="5PdB3P1sLXa" role="2OqNvi" />
4958+
</node>
4959+
</node>
4960+
<node concept="9aQIb" id="5PdB3P1sMri" role="9aQIa">
4961+
<node concept="3clFbS" id="5PdB3P1sMrj" role="9aQI4">
4962+
<node concept="3cpWs8" id="5PdB3P1sPWH" role="3cqZAp">
4963+
<node concept="3cpWsn" id="5PdB3P1sPWI" role="3cpWs9">
4964+
<property role="TrG5h" value="errorMsg" />
4965+
<node concept="17QB3L" id="5PdB3P1sPuL" role="1tU5fm" />
4966+
<node concept="3cpWs3" id="5PdB3P1sPWJ" role="33vP2m">
4967+
<node concept="2OqwBi" id="5PdB3P1sPWK" role="3uHU7w">
4968+
<node concept="2X3wrD" id="5PdB3P1sPWL" role="2Oq$k0">
4969+
<ref role="2X3Bk0" node="5PdB3P1syp5" resolve="toleranceType" />
4970+
</node>
4971+
<node concept="2qgKlT" id="5PdB3P1sPWM" role="2OqNvi">
4972+
<ref role="37wK5l" to="tpcu:hEwIMiw" resolve="getPresentation" />
4973+
</node>
4974+
</node>
4975+
<node concept="3cpWs3" id="5PdB3P1sPWN" role="3uHU7B">
4976+
<node concept="3cpWs3" id="5PdB3P1sPWO" role="3uHU7B">
4977+
<node concept="Xl_RD" id="5PdB3P1sPWP" role="3uHU7B">
4978+
<property role="Xl_RC" value="tolerance cannot be applied to types " />
4979+
</node>
4980+
<node concept="2OqwBi" id="5PdB3P1sPWQ" role="3uHU7w">
4981+
<node concept="2X3wrD" id="5PdB3P1sPWR" role="2Oq$k0">
4982+
<ref role="2X3Bk0" node="5PdB3P1sxNf" resolve="valueType" />
4983+
</node>
4984+
<node concept="2qgKlT" id="5PdB3P1sPWS" role="2OqNvi">
4985+
<ref role="37wK5l" to="tpcu:hEwIMiw" resolve="getPresentation" />
4986+
</node>
4987+
</node>
4988+
</node>
4989+
<node concept="Xl_RD" id="5PdB3P1sPWT" role="3uHU7w">
4990+
<property role="Xl_RC" value=" and " />
4991+
</node>
4992+
</node>
4993+
</node>
4994+
</node>
4995+
</node>
4996+
<node concept="2MkqsV" id="2ck7OjOLa0b" role="3cqZAp">
4997+
<node concept="37vLTw" id="5PdB3P1sPWU" role="2MkJ7o">
4998+
<ref role="3cqZAo" node="5PdB3P1sPWI" resolve="errorMsg" />
4999+
</node>
5000+
<node concept="1YBJjd" id="5PdB3P1sOQA" role="1urrMF">
5001+
<ref role="1YBMHb" node="4399ITSA5yZ" resolve="te" />
5002+
</node>
5003+
</node>
5004+
<node concept="1Z5TYs" id="2ck7OjOLd2l" role="3cqZAp">
5005+
<node concept="mw_s8" id="2ck7OjOLd2M" role="1ZfhKB">
5006+
<node concept="2pJPEk" id="2ck7OjOLd2I" role="mwGJk">
5007+
<node concept="2pJPED" id="2ck7OjOLd2X" role="2pJPEn">
5008+
<ref role="2pJxaS" to="tpd4:hfSilrT" resolve="RuntimeErrorType" />
5009+
<node concept="2pJxcG" id="2xACJhqPMA9" role="2pJxcM">
5010+
<ref role="2pJxcJ" to="tpd4:hfSilrU" resolve="errorText" />
5011+
<node concept="WxPPo" id="5PdB3P1sQ__" role="28ntcv">
5012+
<node concept="37vLTw" id="5PdB3P1sQ_i" role="WxPPp">
5013+
<ref role="3cqZAo" node="5PdB3P1sPWI" resolve="errorMsg" />
5014+
</node>
5015+
</node>
5016+
</node>
5017+
</node>
5018+
</node>
5019+
</node>
5020+
<node concept="mw_s8" id="2ck7OjOLd2o" role="1ZfhK$">
5021+
<node concept="1Z2H0r" id="2ck7OjOLd05" role="mwGJk">
5022+
<node concept="1YBJjd" id="5PdB3P1sPfp" role="1Z2MuG">
5023+
<ref role="1YBMHb" node="4399ITSA5yZ" resolve="te" />
5024+
</node>
5025+
</node>
5026+
</node>
5027+
</node>
5028+
</node>
5029+
</node>
48645030
</node>
48655031
</node>
5032+
<node concept="1Z2H0r" id="5PdB3P1sypO" role="nvjzm">
5033+
<node concept="2OqwBi" id="5PdB3P1sy_F" role="1Z2MuG">
5034+
<node concept="1YBJjd" id="5PdB3P1syqg" role="2Oq$k0">
5035+
<ref role="1YBMHb" node="4399ITSA5yZ" resolve="te" />
5036+
</node>
5037+
<node concept="3TrEf2" id="5PdB3P1sySZ" role="2OqNvi">
5038+
<ref role="3Tt5mk" to="5qo5:4399ITS_elI" resolve="tolerance" />
5039+
</node>
5040+
</node>
5041+
</node>
5042+
<node concept="2X1qdy" id="5PdB3P1syp5" role="2X0Ygz">
5043+
<property role="TrG5h" value="toleranceType" />
5044+
<node concept="2jxLKc" id="5PdB3P1syp6" role="1tU5fm" />
5045+
</node>
48665046
</node>
48675047
</node>
4868-
<node concept="mw_s8" id="4399ITSA5NS" role="1ZfhK$">
4869-
<node concept="1Z2H0r" id="4399ITSA5CU" role="mwGJk">
4870-
<node concept="1YBJjd" id="4399ITSA5G7" role="1Z2MuG">
5048+
<node concept="1Z2H0r" id="5PdB3P1sxPA" role="nvjzm">
5049+
<node concept="2OqwBi" id="5PdB3P1sy1t" role="1Z2MuG">
5050+
<node concept="1YBJjd" id="5PdB3P1sxQ2" role="2Oq$k0">
48715051
<ref role="1YBMHb" node="4399ITSA5yZ" resolve="te" />
48725052
</node>
4873-
</node>
4874-
</node>
4875-
</node>
4876-
<node concept="1ZobV4" id="4399ITSAvTS" role="3cqZAp">
4877-
<node concept="mw_s8" id="4399ITSAw3q" role="1ZfhKB">
4878-
<node concept="2YIFZM" id="4399ITSAwjM" role="mwGJk">
4879-
<ref role="1Pybhc" to="xfg9:2Qbt$1tTQaH" resolve="PTF" />
4880-
<ref role="37wK5l" to="xfg9:2Qbt$1tTQdc" resolve="createRealType" />
4881-
<node concept="10Nm6u" id="4399ITSAwo5" role="37wK5m" />
4882-
</node>
4883-
</node>
4884-
<node concept="mw_s8" id="4399ITSAvTV" role="1ZfhK$">
4885-
<node concept="1Z2H0r" id="4399ITSAuW8" role="mwGJk">
4886-
<node concept="2OqwBi" id="4399ITSAvcj" role="1Z2MuG">
4887-
<node concept="1YBJjd" id="4399ITSAv1f" role="2Oq$k0">
4888-
<ref role="1YBMHb" node="4399ITSA5yZ" resolve="te" />
4889-
</node>
4890-
<node concept="3TrEf2" id="4399ITSAv$2" role="2OqNvi">
4891-
<ref role="3Tt5mk" to="5qo5:4399ITS_ea3" resolve="value" />
4892-
</node>
5053+
<node concept="3TrEf2" id="5PdB3P1sykd" role="2OqNvi">
5054+
<ref role="3Tt5mk" to="5qo5:4399ITS_ea3" resolve="value" />
48935055
</node>
48945056
</node>
48955057
</node>
4896-
</node>
4897-
<node concept="1ZobV4" id="4399ITSAwsQ" role="3cqZAp">
4898-
<node concept="mw_s8" id="4399ITSAwsR" role="1ZfhKB">
4899-
<node concept="2YIFZM" id="4399ITSAwsS" role="mwGJk">
4900-
<ref role="1Pybhc" to="xfg9:2Qbt$1tTQaH" resolve="PTF" />
4901-
<ref role="37wK5l" to="xfg9:2Qbt$1tTQdc" resolve="createRealType" />
4902-
<node concept="10Nm6u" id="4399ITSAwsT" role="37wK5m" />
4903-
</node>
4904-
</node>
4905-
<node concept="mw_s8" id="4399ITSAwsU" role="1ZfhK$">
4906-
<node concept="1Z2H0r" id="4399ITSAwsV" role="mwGJk">
4907-
<node concept="2OqwBi" id="4399ITSAwsW" role="1Z2MuG">
4908-
<node concept="1YBJjd" id="4399ITSAwsX" role="2Oq$k0">
4909-
<ref role="1YBMHb" node="4399ITSA5yZ" resolve="te" />
4910-
</node>
4911-
<node concept="3TrEf2" id="4399ITSAwPd" role="2OqNvi">
4912-
<ref role="3Tt5mk" to="5qo5:4399ITS_elI" resolve="tolerance" />
4913-
</node>
4914-
</node>
4915-
</node>
5058+
<node concept="2X1qdy" id="5PdB3P1sxNf" role="2X0Ygz">
5059+
<property role="TrG5h" value="valueType" />
5060+
<node concept="2jxLKc" id="5PdB3P1sxNg" role="1tU5fm" />
49165061
</node>
49175062
</node>
49185063
</node>

0 commit comments

Comments
 (0)