Skip to content

Commit 639f151

Browse files
authored
Merge pull request #707 from IETS3/feature/add-temporal-literal-check
Add error check for TemporalLiterals to identify slices with duplicate date.
2 parents 64539db + 7b97040 commit 639f151

File tree

8 files changed

+1007
-13
lines changed

8 files changed

+1007
-13
lines changed

CHANGELOG.md

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

88
## September 2023
99

10+
### Added
11+
12+
- Temporal Literal shows an error if two slices use the same point in time. The check can handle date literals and (nested) references to constants with a date literal. (See [PR 707](https://github.com/IETS3/iets3.opensource/pull/707))
13+
- Temporal Literal shows a warning if the point in time of a slice cannot be unwrapped to a date literal, rendering the duplicates-check mentioned above ineffective. (See [PR 707](https://github.com/IETS3/iets3.opensource/pull/707))
14+
1015
### Fixed
1116

1217
- Unit comparisons for the **same** unit defined in **different** packages now lead to an error message for compatibility

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.datetime/models/behavior.mps

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
<concept id="1225194691553" name="jetbrains.mps.lang.behavior.structure.ThisNodeExpression" flags="nn" index="13iPFW" />
3333
</language>
3434
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
35+
<concept id="1080223426719" name="jetbrains.mps.baseLanguage.structure.OrExpression" flags="nn" index="22lmx$" />
3536
<concept id="1215693861676" name="jetbrains.mps.baseLanguage.structure.BaseAssignmentExpression" flags="nn" index="d038R">
3637
<child id="1068498886297" name="rValue" index="37vLTx" />
3738
<child id="1068498886295" name="lValue" index="37vLTJ" />
@@ -60,6 +61,7 @@
6061
<concept id="1070533707846" name="jetbrains.mps.baseLanguage.structure.StaticFieldReference" flags="nn" index="10M0yZ">
6162
<reference id="1144433057691" name="classifier" index="1PxDUh" />
6263
</concept>
64+
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
6365
<concept id="1070534370425" name="jetbrains.mps.baseLanguage.structure.IntegerType" flags="in" index="10Oyi0" />
6466
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
6567
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
@@ -110,6 +112,9 @@
110112
<concept id="1079359253375" name="jetbrains.mps.baseLanguage.structure.ParenthesizedExpression" flags="nn" index="1eOMI4">
111113
<child id="1079359253376" name="expression" index="1eOMHV" />
112114
</concept>
115+
<concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
116+
<child id="1081516765348" name="expression" index="3fr31v" />
117+
</concept>
113118
<concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
114119
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
115120
<child id="1068499141038" name="actualArgument" index="37wK5m" />
@@ -160,12 +165,23 @@
160165
</concept>
161166
</language>
162167
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
168+
<concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
169+
<reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
170+
</concept>
163171
<concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
164172
<concept id="7453996997717780434" name="jetbrains.mps.lang.smodel.structure.Node_GetSConceptOperation" flags="nn" index="2yIwOk" />
173+
<concept id="2396822768958367367" name="jetbrains.mps.lang.smodel.structure.AbstractTypeCastExpression" flags="nn" index="$5XWr">
174+
<child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
175+
<child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
176+
</concept>
165177
<concept id="2644386474300074836" name="jetbrains.mps.lang.smodel.structure.ConceptIdRefExpression" flags="nn" index="35c_gC">
166178
<reference id="2644386474300074837" name="conceptDeclaration" index="35c_gD" />
167179
</concept>
180+
<concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
181+
<child id="1177027386292" name="conceptArgument" index="cj9EA" />
182+
</concept>
168183
<concept id="6870613620390542976" name="jetbrains.mps.lang.smodel.structure.ConceptAliasOperation" flags="ng" index="3n3YKJ" />
184+
<concept id="1140137987495" name="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" flags="nn" index="1PxgMI" />
169185
<concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2">
170186
<reference id="1138405853777" name="concept" index="ehGHo" />
171187
</concept>
@@ -671,6 +687,75 @@
671687
</node>
672688
</node>
673689
</node>
690+
<node concept="13i0hz" id="3FK6iin2u1z" role="13h7CS">
691+
<property role="TrG5h" value="isSameAs" />
692+
<ref role="13i0hy" to="pbu6:7GwCuf2r4g6" resolve="isSameAs" />
693+
<node concept="3Tm1VV" id="3FK6iin2u1$" role="1B3o_S" />
694+
<node concept="3clFbS" id="3FK6iin2u1Z" role="3clF47">
695+
<node concept="3clFbJ" id="7GwCuf2r4$s" role="3cqZAp">
696+
<node concept="3clFbS" id="7GwCuf2r4$u" role="3clFbx">
697+
<node concept="3cpWs6" id="7GwCuf2r4BB" role="3cqZAp">
698+
<node concept="3clFbT" id="7GwCuf2r4BP" role="3cqZAk">
699+
<property role="3clFbU" value="false" />
700+
</node>
701+
</node>
702+
</node>
703+
<node concept="22lmx$" id="3FK6iin1RrO" role="3clFbw">
704+
<node concept="3fqX7Q" id="3FK6iin1RHV" role="3uHU7w">
705+
<node concept="2OqwBi" id="3FK6iin1StC" role="3fr31v">
706+
<node concept="37vLTw" id="3FK6iin1S00" role="2Oq$k0">
707+
<ref role="3cqZAo" node="3FK6iin2u20" resolve="other" />
708+
</node>
709+
<node concept="1mIQ4w" id="3FK6iin1Tkm" role="2OqNvi">
710+
<node concept="chp4Y" id="3FK6iin1TpE" role="cj9EA">
711+
<ref role="cht4Q" to="mi3w:3nGzaxURa4h" resolve="DateLiteral" />
712+
</node>
713+
</node>
714+
</node>
715+
</node>
716+
<node concept="3clFbC" id="7GwCuf2r4B2" role="3uHU7B">
717+
<node concept="37vLTw" id="7GwCuf2r4_u" role="3uHU7B">
718+
<ref role="3cqZAo" node="3FK6iin2u20" resolve="other" />
719+
</node>
720+
<node concept="10Nm6u" id="7GwCuf2r4Bl" role="3uHU7w" />
721+
</node>
722+
</node>
723+
</node>
724+
<node concept="3cpWs6" id="7GwCuf2r4DP" role="3cqZAp">
725+
<node concept="2OqwBi" id="3FK6iin3tHf" role="3cqZAk">
726+
<node concept="2OqwBi" id="3FK6iin2wVW" role="2Oq$k0">
727+
<node concept="13iPFW" id="7GwCuf2r4FV" role="2Oq$k0" />
728+
<node concept="2qgKlT" id="3FK6iin2xor" role="2OqNvi">
729+
<ref role="37wK5l" node="26CArgU4p85" resolve="toDate" />
730+
</node>
731+
</node>
732+
<node concept="liA8E" id="3FK6iin3vbn" role="2OqNvi">
733+
<ref role="37wK5l" to="28m1:~LocalDate.isEqual(java.time.chrono.ChronoLocalDate)" resolve="isEqual" />
734+
<node concept="2OqwBi" id="3FK6iin2_rE" role="37wK5m">
735+
<node concept="1PxgMI" id="3FK6iin2$22" role="2Oq$k0">
736+
<node concept="chp4Y" id="3FK6iin2$l$" role="3oSUPX">
737+
<ref role="cht4Q" to="mi3w:3nGzaxURa4h" resolve="DateLiteral" />
738+
</node>
739+
<node concept="37vLTw" id="7GwCuf2r4Jh" role="1m5AlR">
740+
<ref role="3cqZAo" node="3FK6iin2u20" resolve="other" />
741+
</node>
742+
</node>
743+
<node concept="2qgKlT" id="3FK6iin2AD6" role="2OqNvi">
744+
<ref role="37wK5l" node="26CArgU4p85" resolve="toDate" />
745+
</node>
746+
</node>
747+
</node>
748+
</node>
749+
</node>
750+
</node>
751+
<node concept="37vLTG" id="3FK6iin2u20" role="3clF46">
752+
<property role="TrG5h" value="other" />
753+
<node concept="3Tqbb2" id="3FK6iin2u21" role="1tU5fm">
754+
<ref role="ehGHo" to="hm2y:6sdnDbSla17" resolve="Expression" />
755+
</node>
756+
</node>
757+
<node concept="10P_77" id="3FK6iin2u22" role="3clF45" />
758+
</node>
674759
</node>
675760
<node concept="13h7C7" id="3nGzaxURzmT">
676761
<property role="3GE5qa" value="date" />

0 commit comments

Comments
 (0)