Implement hashCode() in Hierarchy.Vertex classes to adhere to contract of constraint args

Contract stems from the fact that constraint args influence Rules hashes (unique tags)
and so must be stable under irrelevant changes for incremental logic
This commit is contained in:
Grigorii Kirgizov 2020-11-11 17:39:50 +03:00
parent 42bc7a88fd
commit 271c93abfa
2 changed files with 85 additions and 0 deletions

View File

@ -46090,6 +46090,27 @@
</node>
</node>
</node>
<node concept="2tJIrI" id="6tFa8SpWNTs" role="jymVt" />
<node concept="3clFb_" id="6tFa8SpWPsU" role="jymVt">
<property role="TrG5h" value="hashCode" />
<node concept="3Tm1VV" id="6tFa8SpWPsV" role="1B3o_S" />
<node concept="10Oyi0" id="6tFa8SpWPsY" role="3clF45" />
<node concept="3clFbS" id="6tFa8SpWPt2" role="3clF47">
<node concept="3clFbF" id="6tFa8SpWZaf" role="3cqZAp">
<node concept="2OqwBi" id="6tFa8SpWZxo" role="3clFbG">
<node concept="37vLTw" id="6tFa8SpWZah" role="2Oq$k0">
<ref role="3cqZAo" node="74XSvyw6uck" resolve="origin" />
</node>
<node concept="liA8E" id="6tFa8SpWZKu" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Object.hashCode()" resolve="hashCode" />
</node>
</node>
</node>
</node>
<node concept="2AHcQZ" id="6tFa8SpWPt3" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="z9rjE_iFKl" role="jymVt" />
<node concept="312cEg" id="z9rjE$wEe3" role="jymVt">
<property role="TrG5h" value="paths" />
@ -46468,6 +46489,7 @@
</node>
</node>
</node>
<node concept="2tJIrI" id="6tFa8SpWxDW" role="jymVt" />
<node concept="3Tm1VV" id="74XSvywaFO8" role="1B3o_S" />
<node concept="16euLQ" id="74XSvywaG2i" role="16eVyc">
<property role="TrG5h" value="T" />
@ -46501,6 +46523,26 @@
<ref role="16sUi3" node="74XSvywaG2i" resolve="T" />
</node>
</node>
<node concept="3clFb_" id="6tFa8SpWyF4" role="jymVt">
<property role="TrG5h" value="hashCode" />
<node concept="3Tm1VV" id="6tFa8SpWyF5" role="1B3o_S" />
<node concept="10Oyi0" id="6tFa8SpWyF8" role="3clF45" />
<node concept="3clFbS" id="6tFa8SpWyFf" role="3clF47">
<node concept="3clFbF" id="6tFa8SpWC6W" role="3cqZAp">
<node concept="2OqwBi" id="6tFa8SpWD0h" role="3clFbG">
<node concept="37vLTw" id="6tFa8SpWC6Y" role="2Oq$k0">
<ref role="3cqZAo" node="74XSvywaLDZ" resolve="proto" />
</node>
<node concept="liA8E" id="6tFa8SpWDHc" role="2OqNvi">
<ref role="37wK5l" node="6tFa8SpWPsU" resolve="hashCode" />
</node>
</node>
</node>
</node>
<node concept="2AHcQZ" id="6tFa8SpWyFg" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
</node>
<node concept="2tJIrI" id="5wYq9r4DKzG" role="jymVt" />
<node concept="312cEu" id="5wYq9r4CKHV" role="jymVt">
@ -49889,6 +49931,27 @@
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="6tFa8SpXioY" role="jymVt" />
<node concept="3clFb_" id="6tFa8SpXk55" role="jymVt">
<property role="TrG5h" value="hashCode" />
<node concept="3Tm1VV" id="6tFa8SpXk56" role="1B3o_S" />
<node concept="10Oyi0" id="6tFa8SpXk57" role="3clF45" />
<node concept="2AHcQZ" id="6tFa8SpXk5d" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
<node concept="3clFbS" id="6tFa8SpXk5e" role="3clF47">
<node concept="3clFbF" id="6tFa8SpXlvK" role="3cqZAp">
<node concept="2OqwBi" id="6tFa8SpXlXy" role="3clFbG">
<node concept="37vLTw" id="6tFa8SpXlvM" role="2Oq$k0">
<ref role="3cqZAo" node="6tm4iVujxf9" resolve="text" />
</node>
<node concept="liA8E" id="6tFa8SpXmmB" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.hashCode()" resolve="hashCode" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="6tm4iVujv8R" role="jymVt" />
<node concept="312cEg" id="6tm4iVujxf9" role="jymVt">
<property role="TrG5h" value="text" />

View File

@ -93,6 +93,7 @@
<child id="1081256993304" name="leftExpression" index="2ZW6bz" />
</concept>
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
<concept id="1070534370425" name="jetbrains.mps.baseLanguage.structure.IntegerType" flags="in" index="10Oyi0" />
<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" />
@ -4446,6 +4447,27 @@
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="6tFa8SpXioY" role="jymVt" />
<node concept="3clFb_" id="6tFa8SpXk55" role="jymVt">
<property role="TrG5h" value="hashCode" />
<node concept="3Tm1VV" id="6tFa8SpXk56" role="1B3o_S" />
<node concept="10Oyi0" id="6tFa8SpXk57" role="3clF45" />
<node concept="2AHcQZ" id="6tFa8SpXk5d" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
<node concept="3clFbS" id="6tFa8SpXk5e" role="3clF47">
<node concept="3clFbF" id="6tFa8SpXlvK" role="3cqZAp">
<node concept="2OqwBi" id="6tFa8SpXlXy" role="3clFbG">
<node concept="37vLTw" id="6tFa8SpXlvM" role="2Oq$k0">
<ref role="3cqZAo" node="5wYq9r4vq2x" resolve="text" />
</node>
<node concept="liA8E" id="6tFa8SpXmmB" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.hashCode()" resolve="hashCode" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="5wYq9r4vwh9" role="jymVt" />
<node concept="312cEg" id="5wYq9r4vq2x" role="jymVt">
<property role="TrG5h" value="text" />