Skip to content

Commit d3dabf1

Browse files
Merge pull request #1325 from IETS3/bugfix/stringTypeWithConstraint_optional
2 parents 09200e7 + c169cba commit d3dabf1

File tree

9 files changed

+452
-46
lines changed

9 files changed

+452
-46
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ The project does _not_ follow Semantic Versioning and the changes are documented
1111

1212
- A NullPointerException was fixed for cases where a node implementing IValidNamedConcept had no name.
1313
- When calculating the supertype of number types, the precision is now correctly set to infinite when one of the types has an infinite precision.
14+
- The primitiveTypeMapper extension supports a new method `PrimitiveTypeMapper#useStringConstraints` that can be set to false to disable string types with constraints and go back to regular string types.
1415

1516
## April 2025
1617

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.base/models/plugin.mps

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,6 +1396,19 @@
13961396
<node concept="3Tm1VV" id="1DSLxNDLbg7" role="1B3o_S" />
13971397
<node concept="10P_77" id="1DSLxNDLe7n" role="3clF45" />
13981398
</node>
1399+
<node concept="2tJIrI" id="2Jw_KdeTWNN" role="jymVt" />
1400+
<node concept="3clFb_" id="2Jw_KdeUfi2" role="jymVt">
1401+
<property role="TrG5h" value="useStringConstraints" />
1402+
<node concept="3clFbS" id="2Jw_KdeUfi5" role="3clF47">
1403+
<node concept="3clFbF" id="2Jw_KdeUg5M" role="3cqZAp">
1404+
<node concept="3clFbT" id="2Jw_Kdf7Hq2" role="3clFbG">
1405+
<property role="3clFbU" value="true" />
1406+
</node>
1407+
</node>
1408+
</node>
1409+
<node concept="3Tm1VV" id="2Jw_KdeUc0n" role="1B3o_S" />
1410+
<node concept="10P_77" id="2Jw_KdeUfgb" role="3clF45" />
1411+
</node>
13991412
</node>
14001413
<node concept="vrV6u" id="WieAE6FJqt">
14011414
<property role="TrG5h" value="primitiveTypeMapper" />

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1354,5 +1354,19 @@
13541354
</node>
13551355
</node>
13561356
</node>
1357+
<node concept="1M2fIO" id="2Jw_Kdf9LH9">
1358+
<property role="3GE5qa" value="string" />
1359+
<ref role="1M2myG" to="5qo5:2xPWNWpoRmG" resolve="StringTypeWithConstraint" />
1360+
<node concept="9S07l" id="2Jw_Kdf9LHa" role="9Vyp8">
1361+
<node concept="3clFbS" id="2Jw_Kdf9LHb" role="2VODD2">
1362+
<node concept="3clFbF" id="2Jw_Kdf9LUR" role="3cqZAp">
1363+
<node concept="2YIFZM" id="2Jw_Kdf9LXS" role="3clFbG">
1364+
<ref role="37wK5l" to="xfg9:2Jw_KdeVcY2" resolve="useStringConstraints" />
1365+
<ref role="1Pybhc" to="xfg9:2Qbt$1tTQaH" resolve="PTF" />
1366+
</node>
1367+
</node>
1368+
</node>
1369+
</node>
1370+
</node>
13571371
</model>
13581372

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -246,9 +246,6 @@
246246
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
247247
<child id="1068581517665" name="statement" index="3cqZAp" />
248248
</concept>
249-
<concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT">
250-
<property id="1068580123138" name="value" index="3clFbU" />
251-
</concept>
252249
<concept id="1068580320020" name="jetbrains.mps.baseLanguage.structure.IntegerConstant" flags="nn" index="3cmrfG">
253250
<property id="1068580320021" name="value" index="3cmrfH" />
254251
</concept>
@@ -1945,9 +1942,10 @@
19451942
<node concept="1eYWM2" id="2xPWNWp$vnN" role="3EZMnx">
19461943
<node concept="1eYwpX" id="2xPWNWp$vnO" role="1eYxym">
19471944
<node concept="3clFbS" id="2xPWNWp$vnP" role="2VODD2">
1948-
<node concept="3clFbF" id="2xPWNWp$MrS" role="3cqZAp">
1949-
<node concept="3clFbT" id="2xPWNWp$MrR" role="3clFbG">
1950-
<property role="3clFbU" value="true" />
1945+
<node concept="3clFbF" id="2Jw_KdeVc6N" role="3cqZAp">
1946+
<node concept="2YIFZM" id="2Jw_KdeW0$u" role="3clFbG">
1947+
<ref role="37wK5l" to="xfg9:2Jw_KdeVcY2" resolve="useStringConstraints" />
1948+
<ref role="1Pybhc" to="xfg9:2Qbt$1tTQaH" resolve="PTF" />
19511949
</node>
19521950
</node>
19531951
</node>

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

Lines changed: 68 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -556,49 +556,53 @@
556556
<property role="TrG5h" value="typeof_StringLiteral" />
557557
<property role="3GE5qa" value="string" />
558558
<node concept="3clFbS" id="4rZeNQ6Pjwj" role="18ibNy">
559-
<node concept="1Z5TYs" id="4rZeNQ6Pj$q" role="3cqZAp">
560-
<node concept="mw_s8" id="4rZeNQ6Pj$t" role="1ZfhK$">
561-
<node concept="1Z2H0r" id="4rZeNQ6Pjwv" role="mwGJk">
562-
<node concept="1YBJjd" id="4rZeNQ6PjwJ" role="1Z2MuG">
563-
<ref role="1YBMHb" node="4rZeNQ6Pjwl" resolve="sl" />
564-
</node>
565-
</node>
566-
</node>
567-
<node concept="mw_s8" id="hTGlT9U4aN" role="1ZfhKB">
568-
<node concept="2pJPEk" id="2xPWNWpqoAU" role="mwGJk">
569-
<node concept="2pJPED" id="2xPWNWpqoAW" role="2pJPEn">
570-
<ref role="2pJxaS" to="5qo5:2xPWNWpoRmG" resolve="StringTypeWithConstraint" />
571-
<node concept="2pIpSj" id="2xPWNWpqoOr" role="2pJxcM">
572-
<ref role="2pIpSl" to="5qo5:2xPWNWprAOp" resolve="constraint" />
573-
<node concept="36biLy" id="2xPWNWpqpxY" role="28nt2d">
574-
<node concept="2pJPEk" id="hTGlT9U0Ol" role="36biLW">
575-
<node concept="2pJPED" id="hTGlT9U0On" role="2pJPEn">
576-
<ref role="2pJxaS" to="tpfo:h5OC9$H" resolve="StringLiteralRegexp" />
577-
<node concept="2pJxcG" id="hTGlT9U0SX" role="2pJxcM">
578-
<ref role="2pJxcJ" to="tpfo:h5OCbxf" resolve="text" />
579-
<node concept="WxPPo" id="hTGlT9U0Vy" role="28ntcv">
580-
<node concept="3K4zz7" id="3g7FMHmyHgA" role="WxPPp">
581-
<node concept="2OqwBi" id="3g7FMHmyHwR" role="3K4E3e">
582-
<node concept="1YBJjd" id="3g7FMHmyHkd" role="2Oq$k0">
583-
<ref role="1YBMHb" node="4rZeNQ6Pjwl" resolve="sl" />
584-
</node>
585-
<node concept="3TrcHB" id="3g7FMHmyHyi" role="2OqNvi">
586-
<ref role="3TsBF5" to="5qo5:4rZeNQ6OYRb" resolve="value" />
587-
</node>
588-
</node>
589-
<node concept="Xl_RD" id="3g7FMHmyHB3" role="3K4GZi">
590-
<property role="Xl_RC" value="" />
591-
</node>
592-
<node concept="2OqwBi" id="3g7FMHmyF9a" role="3K4Cdx">
593-
<node concept="2OqwBi" id="hTGlT9U1bJ" role="2Oq$k0">
594-
<node concept="1YBJjd" id="hTGlT9U0Vw" role="2Oq$k0">
595-
<ref role="1YBMHb" node="4rZeNQ6Pjwl" resolve="sl" />
559+
<node concept="3clFbJ" id="2Jw_KdeX7dx" role="3cqZAp">
560+
<node concept="3clFbS" id="2Jw_KdeX7dz" role="3clFbx">
561+
<node concept="1Z5TYs" id="4rZeNQ6Pj$q" role="3cqZAp">
562+
<node concept="mw_s8" id="4rZeNQ6Pj$t" role="1ZfhK$">
563+
<node concept="1Z2H0r" id="4rZeNQ6Pjwv" role="mwGJk">
564+
<node concept="1YBJjd" id="4rZeNQ6PjwJ" role="1Z2MuG">
565+
<ref role="1YBMHb" node="4rZeNQ6Pjwl" resolve="sl" />
566+
</node>
567+
</node>
568+
</node>
569+
<node concept="mw_s8" id="hTGlT9U4aN" role="1ZfhKB">
570+
<node concept="2pJPEk" id="2xPWNWpqoAU" role="mwGJk">
571+
<node concept="2pJPED" id="2xPWNWpqoAW" role="2pJPEn">
572+
<ref role="2pJxaS" to="5qo5:2xPWNWpoRmG" resolve="StringTypeWithConstraint" />
573+
<node concept="2pIpSj" id="2xPWNWpqoOr" role="2pJxcM">
574+
<ref role="2pIpSl" to="5qo5:2xPWNWprAOp" resolve="constraint" />
575+
<node concept="36biLy" id="2xPWNWpqpxY" role="28nt2d">
576+
<node concept="2pJPEk" id="hTGlT9U0Ol" role="36biLW">
577+
<node concept="2pJPED" id="hTGlT9U0On" role="2pJPEn">
578+
<ref role="2pJxaS" to="tpfo:h5OC9$H" resolve="StringLiteralRegexp" />
579+
<node concept="2pJxcG" id="hTGlT9U0SX" role="2pJxcM">
580+
<ref role="2pJxcJ" to="tpfo:h5OCbxf" resolve="text" />
581+
<node concept="WxPPo" id="hTGlT9U0Vy" role="28ntcv">
582+
<node concept="3K4zz7" id="3g7FMHmyHgA" role="WxPPp">
583+
<node concept="2OqwBi" id="3g7FMHmyHwR" role="3K4E3e">
584+
<node concept="1YBJjd" id="3g7FMHmyHkd" role="2Oq$k0">
585+
<ref role="1YBMHb" node="4rZeNQ6Pjwl" resolve="sl" />
586+
</node>
587+
<node concept="3TrcHB" id="3g7FMHmyHyi" role="2OqNvi">
588+
<ref role="3TsBF5" to="5qo5:4rZeNQ6OYRb" resolve="value" />
589+
</node>
596590
</node>
597-
<node concept="3TrcHB" id="hTGlT9U1$E" role="2OqNvi">
598-
<ref role="3TsBF5" to="5qo5:4rZeNQ6OYRb" resolve="value" />
591+
<node concept="Xl_RD" id="3g7FMHmyHB3" role="3K4GZi">
592+
<property role="Xl_RC" value="" />
593+
</node>
594+
<node concept="2OqwBi" id="3g7FMHmyF9a" role="3K4Cdx">
595+
<node concept="2OqwBi" id="hTGlT9U1bJ" role="2Oq$k0">
596+
<node concept="1YBJjd" id="hTGlT9U0Vw" role="2Oq$k0">
597+
<ref role="1YBMHb" node="4rZeNQ6Pjwl" resolve="sl" />
598+
</node>
599+
<node concept="3TrcHB" id="hTGlT9U1$E" role="2OqNvi">
600+
<ref role="3TsBF5" to="5qo5:4rZeNQ6OYRb" resolve="value" />
601+
</node>
602+
</node>
603+
<node concept="17RvpY" id="3g7FMHmyG0L" role="2OqNvi" />
599604
</node>
600605
</node>
601-
<node concept="17RvpY" id="3g7FMHmyG0L" role="2OqNvi" />
602606
</node>
603607
</node>
604608
</node>
@@ -610,6 +614,30 @@
610614
</node>
611615
</node>
612616
</node>
617+
<node concept="2YIFZM" id="2Jw_KdeX7kE" role="3clFbw">
618+
<ref role="37wK5l" to="xfg9:2Jw_KdeVcY2" resolve="useStringConstraints" />
619+
<ref role="1Pybhc" to="xfg9:2Qbt$1tTQaH" resolve="PTF" />
620+
</node>
621+
<node concept="9aQIb" id="2Jw_KdeX7Aa" role="9aQIa">
622+
<node concept="3clFbS" id="2Jw_KdeX7Ab" role="9aQI4">
623+
<node concept="1Z5TYs" id="2Jw_KdeX88o" role="3cqZAp">
624+
<node concept="mw_s8" id="2Jw_KdeX88r" role="1ZfhK$">
625+
<node concept="1Z2H0r" id="2Jw_KdeX7OX" role="mwGJk">
626+
<node concept="1YBJjd" id="2Jw_KdeX7Uk" role="1Z2MuG">
627+
<ref role="1YBMHb" node="4rZeNQ6Pjwl" resolve="sl" />
628+
</node>
629+
</node>
630+
</node>
631+
<node concept="mw_s8" id="4rZeNQ6Pj$I" role="1ZfhKB">
632+
<node concept="2pJPEk" id="4rZeNQ6Pj$E" role="mwGJk">
633+
<node concept="2pJPED" id="4rZeNQ6Pj$T" role="2pJPEn">
634+
<ref role="2pJxaS" to="5qo5:4rZeNQ6OYR7" resolve="StringType" />
635+
</node>
636+
</node>
637+
</node>
638+
</node>
639+
</node>
640+
</node>
613641
</node>
614642
</node>
615643
<node concept="1YaCAy" id="4rZeNQ6Pjwl" role="1YuTPh">

code/languages/org.iets3.opensource/solutions/org.iets3.core.expr.base.runtime/models/runtime.mps

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1445,6 +1445,24 @@
14451445
<node concept="10P_77" id="1DSLxNDLgVN" role="3clF45" />
14461446
<node concept="3Tm1VV" id="1DSLxNDLgVO" role="1B3o_S" />
14471447
</node>
1448+
<node concept="2tJIrI" id="2Jw_KdeUiPj" role="jymVt" />
1449+
<node concept="2YIFZL" id="2Jw_KdeVcY2" role="jymVt">
1450+
<property role="TrG5h" value="useStringConstraints" />
1451+
<node concept="3clFbS" id="2Jw_KdeVcY4" role="3clF47">
1452+
<node concept="3clFbF" id="2Jw_KdeVcY5" role="3cqZAp">
1453+
<node concept="2OqwBi" id="2Jw_KdeVcY6" role="3clFbG">
1454+
<node concept="1rXfSq" id="2Jw_KdeVcY7" role="2Oq$k0">
1455+
<ref role="37wK5l" node="2Qbt$1tTQn5" resolve="resolveMapper" />
1456+
</node>
1457+
<node concept="liA8E" id="2Jw_KdeVcY8" role="2OqNvi">
1458+
<ref role="37wK5l" to="oq0c:2Jw_KdeUfi2" resolve="useStringConstraints" />
1459+
</node>
1460+
</node>
1461+
</node>
1462+
</node>
1463+
<node concept="10P_77" id="2Jw_KdeVcYa" role="3clF45" />
1464+
<node concept="3Tm1VV" id="2Jw_KdeVcY9" role="1B3o_S" />
1465+
</node>
14481466
<node concept="2tJIrI" id="2Qbt$1tTQb0" role="jymVt" />
14491467
<node concept="3Tm1VV" id="2Qbt$1tTQaI" role="1B3o_S" />
14501468
</node>

0 commit comments

Comments
 (0)