Complete subtyping for array types (A[] <: Serializable, Cloneable; JLS 4.10.3) (MPSCR-3)
This commit is contained in:
parent
e4b927e6e6
commit
52af2d527a
|
|
@ -30,6 +30,7 @@
|
|||
<import index="tj24" ref="r:0fbbb63a-fd15-46e1-8136-78049f6d6e63(jetbrains.mps.coderules.typechecking.service)" />
|
||||
<import index="oy3s" ref="r:a6030cee-34eb-4503-b1bf-015fe5cd8c1a(jetbrains.mps.logic.unification)" />
|
||||
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
|
||||
<import index="guwi" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.io(JDK/)" />
|
||||
</imports>
|
||||
<registry>
|
||||
<language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
|
||||
|
|
@ -16891,6 +16892,112 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="1nLNMY" id="2i6cuYQqGmm" role="1nK1Vg">
|
||||
<property role="TrG5h" value="converts_arrayType_Cloneable" />
|
||||
<node concept="3clFbS" id="2i6cuYQqGmn" role="1nLNMH">
|
||||
<node concept="1nLNNL" id="2i6cuYQqGmo" role="3cqZAp">
|
||||
<node concept="1nLNMm" id="2i6cuYQqGmp" role="1nLNNK">
|
||||
<node concept="0eUR_" id="2i6cuYQqGmq" role="0UC6o">
|
||||
<node concept="3NuqgR" id="2i6cuYQqGmr" role="0eVf_">
|
||||
<node concept="aZer4" id="2i6cuYQqGms" role="3XD1gS">
|
||||
<property role="TrG5h" value="ArrLeft" />
|
||||
</node>
|
||||
<node concept="aZer4" id="2i6cuYQqGmu" role="3XD1gS">
|
||||
<property role="TrG5h" value="ArrRight" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3Aq93q" id="2i6cuYQqGmw" role="1nLNMb">
|
||||
<property role="3ArMco" value="false" />
|
||||
<node concept="3I6sU6" id="2i6cuYQqGmx" role="3Ip0Jz">
|
||||
<node concept="3I6s7M" id="2i6cuYQqGmy" role="3I6sU7">
|
||||
<node concept="3Aqt3T" id="2i6cuYQqGmz" role="3I6s78">
|
||||
<ref role="3AqCNq" node="3Qp4N06bUPu" resolve="convertsTo" />
|
||||
<node concept="1HFMs5" id="2i6cuYQqGm$" role="3AunhB">
|
||||
<node concept="ns1u0" id="2i6cuYQqGm_" role="1uarlW">
|
||||
<ref role="ns1xF" node="JOGAOsVt2o" resolve="arrayType" />
|
||||
</node>
|
||||
<node concept="a7P8L" id="2i6cuYQqGmD" role="1uarlU">
|
||||
<ref role="a7OzE" node="2i6cuYQqGms" resolve="ArrLeft" />
|
||||
</node>
|
||||
</node>
|
||||
<node concept="1HFMs5" id="2i6cuYQqGmE" role="3AunhB">
|
||||
<node concept="ns1u0" id="2i6cuYQqIkB" role="1uarlW">
|
||||
<ref role="ns1xF" node="JOGAOsVt2a" resolve="classifierType" />
|
||||
<node concept="nsMwS" id="2i6cuYQqIos" role="ns1xD">
|
||||
<ref role="nsMwP" node="JOGAOsVt2c" resolve="classifier" />
|
||||
<node concept="2tJFMh" id="2i6cuYQqIBG" role="nsMwV">
|
||||
<node concept="ZC_QK" id="2i6cuYQqIFB" role="2tJFKM">
|
||||
<ref role="2aWVGs" to="wyt6:~Cloneable" resolve="Cloneable" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="a7P8L" id="2i6cuYQqGmJ" role="1uarlU">
|
||||
<ref role="a7OzE" node="2i6cuYQqGmu" resolve="ArrRight" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="1nLNMY" id="2i6cuYQqJab" role="1nK1Vg">
|
||||
<property role="TrG5h" value="converts_arrayType_Serializable" />
|
||||
<node concept="3clFbS" id="2i6cuYQqJac" role="1nLNMH">
|
||||
<node concept="1nLNNL" id="2i6cuYQqJad" role="3cqZAp">
|
||||
<node concept="1nLNMm" id="2i6cuYQqJae" role="1nLNNK">
|
||||
<node concept="0eUR_" id="2i6cuYQqJaf" role="0UC6o">
|
||||
<node concept="3NuqgR" id="2i6cuYQqJag" role="0eVf_">
|
||||
<node concept="aZer4" id="2i6cuYQqJah" role="3XD1gS">
|
||||
<property role="TrG5h" value="ArrLeft" />
|
||||
</node>
|
||||
<node concept="aZer4" id="2i6cuYQqJaj" role="3XD1gS">
|
||||
<property role="TrG5h" value="ArrRight" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3Aq93q" id="2i6cuYQqJal" role="1nLNMb">
|
||||
<property role="3ArMco" value="false" />
|
||||
<node concept="3I6sU6" id="2i6cuYQqJam" role="3Ip0Jz">
|
||||
<node concept="3I6s7M" id="2i6cuYQqJan" role="3I6sU7">
|
||||
<node concept="3Aqt3T" id="2i6cuYQqJao" role="3I6s78">
|
||||
<ref role="3AqCNq" node="3Qp4N06bUPu" resolve="convertsTo" />
|
||||
<node concept="1HFMs5" id="2i6cuYQqJap" role="3AunhB">
|
||||
<node concept="ns1u0" id="2i6cuYQqJaq" role="1uarlW">
|
||||
<ref role="ns1xF" node="JOGAOsVt2o" resolve="arrayType" />
|
||||
</node>
|
||||
<node concept="a7P8L" id="2i6cuYQqJar" role="1uarlU">
|
||||
<ref role="a7OzE" node="2i6cuYQqJah" resolve="ArrLeft" />
|
||||
</node>
|
||||
</node>
|
||||
<node concept="1HFMs5" id="2i6cuYQqJas" role="3AunhB">
|
||||
<node concept="ns1u0" id="2i6cuYQqJat" role="1uarlW">
|
||||
<ref role="ns1xF" node="JOGAOsVt2a" resolve="classifierType" />
|
||||
<node concept="nsMwS" id="2i6cuYQqJau" role="ns1xD">
|
||||
<ref role="nsMwP" node="JOGAOsVt2c" resolve="classifier" />
|
||||
<node concept="2tJFMh" id="2i6cuYQqJav" role="nsMwV">
|
||||
<node concept="ZC_QK" id="2i6cuYQqLSa" role="2tJFKM">
|
||||
<ref role="2aWVGs" to="guwi:~Serializable" resolve="Serializable" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="a7P8L" id="2i6cuYQqJax" role="1uarlU">
|
||||
<ref role="a7OzE" node="2i6cuYQqJaj" resolve="ArrRight" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="1nLNMY" id="12QmIo_7sis" role="1nK1Vg">
|
||||
<property role="TrG5h" value="converts_any_lowerBoundType" />
|
||||
<node concept="3clFbS" id="12QmIo_7sit" role="1nLNMH">
|
||||
|
|
|
|||
|
|
@ -9889,5 +9889,181 @@
|
|||
</node>
|
||||
<node concept="3Tm1VV" id="2i6cuYQ8hzQ" role="1B3o_S" />
|
||||
</node>
|
||||
<node concept="312cEu" id="2i6cuYQqrTM">
|
||||
<property role="TrG5h" value="ArraySubtyping" />
|
||||
<node concept="312cEu" id="2i6cuYQqvtI" role="jymVt">
|
||||
<property role="TrG5h" value="A" />
|
||||
<node concept="3Tm1VV" id="2i6cuYQqvlK" role="1B3o_S" />
|
||||
</node>
|
||||
<node concept="312cEu" id="2i6cuYQqvN_" role="jymVt">
|
||||
<property role="TrG5h" value="B" />
|
||||
<node concept="3Tm1VV" id="2i6cuYQqvNA" role="1B3o_S" />
|
||||
<node concept="3uibUv" id="2i6cuYQqwsG" role="1zkMxy">
|
||||
<ref role="3uigEE" node="2i6cuYQqvtI" resolve="ArraySubtyping.A" />
|
||||
</node>
|
||||
</node>
|
||||
<node concept="312cEu" id="2i6cuYQqvO7" role="jymVt">
|
||||
<property role="TrG5h" value="C" />
|
||||
<node concept="3Tm1VV" id="2i6cuYQqvO8" role="1B3o_S" />
|
||||
<node concept="3uibUv" id="2i6cuYQqwkt" role="1zkMxy">
|
||||
<ref role="3uigEE" node="2i6cuYQqvN_" resolve="ArraySubtyping.B" />
|
||||
</node>
|
||||
</node>
|
||||
<node concept="2tJIrI" id="2i6cuYQqvO0" role="jymVt" />
|
||||
<node concept="3clFb_" id="2i6cuYQqwOD" role="jymVt">
|
||||
<property role="TrG5h" value="subtyping" />
|
||||
<node concept="3clFbS" id="2i6cuYQqwOG" role="3clF47">
|
||||
<node concept="3clFbF" id="2i6cuYQqyyu" role="3cqZAp">
|
||||
<node concept="37vLTI" id="2i6cuYQqy_h" role="3clFbG">
|
||||
<node concept="37vLTw" id="2i6cuYQqyHH" role="37vLTx">
|
||||
<ref role="3cqZAo" node="2i6cuYQqwT0" resolve="as" />
|
||||
</node>
|
||||
<node concept="37vLTw" id="2i6cuYQqyyt" role="37vLTJ">
|
||||
<ref role="3cqZAo" node="2i6cuYQqwT0" resolve="as" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3clFbF" id="2i6cuYQqyMD" role="3cqZAp">
|
||||
<node concept="37vLTI" id="2i6cuYQqyNl" role="3clFbG">
|
||||
<node concept="37vLTw" id="2i6cuYQqyOb" role="37vLTx">
|
||||
<ref role="3cqZAo" node="2i6cuYQqx2n" resolve="bs" />
|
||||
</node>
|
||||
<node concept="37vLTw" id="2i6cuYQqyMB" role="37vLTJ">
|
||||
<ref role="3cqZAo" node="2i6cuYQqwT0" resolve="as" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3clFbF" id="2i6cuYQqyTR" role="3cqZAp">
|
||||
<node concept="37vLTI" id="2i6cuYQqyWM" role="3clFbG">
|
||||
<node concept="37vLTw" id="2i6cuYQqyTP" role="37vLTJ">
|
||||
<ref role="3cqZAo" node="2i6cuYQqwT0" resolve="as" />
|
||||
</node>
|
||||
<node concept="37vLTw" id="2i6cuYQqz6M" role="37vLTx">
|
||||
<ref role="3cqZAo" node="2i6cuYQqxgN" resolve="cs" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3clFbH" id="2i6cuYQqz8f" role="3cqZAp" />
|
||||
<node concept="3cpWs8" id="2i6cuYQqzlw" role="3cqZAp">
|
||||
<node concept="3cpWsn" id="2i6cuYQqzlx" role="3cpWs9">
|
||||
<property role="TrG5h" value="anything" />
|
||||
<node concept="3uibUv" id="2i6cuYQqzly" role="1tU5fm">
|
||||
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
|
||||
</node>
|
||||
<node concept="37vLTw" id="2i6cuYQqzuD" role="33vP2m">
|
||||
<ref role="3cqZAo" node="2i6cuYQqx2n" resolve="bs" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3cpWs8" id="2i6cuYQqBgR" role="3cqZAp">
|
||||
<node concept="3cpWsn" id="2i6cuYQqBgS" role="3cpWs9">
|
||||
<property role="TrG5h" value="serial1" />
|
||||
<node concept="3uibUv" id="2i6cuYQqBgT" role="1tU5fm">
|
||||
<ref role="3uigEE" to="guwi:~Serializable" resolve="Serializable" />
|
||||
</node>
|
||||
<node concept="37vLTw" id="2i6cuYQqBq1" role="33vP2m">
|
||||
<ref role="3cqZAo" node="2i6cuYQqAv0" resolve="os" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3cpWs8" id="2i6cuYQq$NN" role="3cqZAp">
|
||||
<node concept="3cpWsn" id="2i6cuYQq$NO" role="3cpWs9">
|
||||
<property role="TrG5h" value="serial2" />
|
||||
<node concept="3uibUv" id="2i6cuYQq$NP" role="1tU5fm">
|
||||
<ref role="3uigEE" to="guwi:~Serializable" resolve="Serializable" />
|
||||
</node>
|
||||
<node concept="37vLTw" id="2i6cuYQqOiU" role="33vP2m">
|
||||
<ref role="3cqZAo" node="2i6cuYQqNHD" resolve="is" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3cpWs8" id="2i6cuYQqOcM" role="3cqZAp">
|
||||
<node concept="3cpWsn" id="2i6cuYQqOcN" role="3cpWs9">
|
||||
<property role="TrG5h" value="serial3" />
|
||||
<node concept="3uibUv" id="2i6cuYQqOcO" role="1tU5fm">
|
||||
<ref role="3uigEE" to="guwi:~Serializable" resolve="Serializable" />
|
||||
</node>
|
||||
<node concept="37vLTw" id="2i6cuYQqOcP" role="33vP2m">
|
||||
<ref role="3cqZAo" node="2i6cuYQqx2n" resolve="bs" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3cpWs8" id="2i6cuYQqBAL" role="3cqZAp">
|
||||
<node concept="3cpWsn" id="2i6cuYQqBAM" role="3cpWs9">
|
||||
<property role="TrG5h" value="jangoFett" />
|
||||
<node concept="3uibUv" id="2i6cuYQqBAN" role="1tU5fm">
|
||||
<ref role="3uigEE" to="wyt6:~Cloneable" resolve="Cloneable" />
|
||||
</node>
|
||||
<node concept="37vLTw" id="2i6cuYQqCak" role="33vP2m">
|
||||
<ref role="3cqZAo" node="2i6cuYQqAv0" resolve="os" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3cpWs8" id="2i6cuYQqOJd" role="3cqZAp">
|
||||
<node concept="3cpWsn" id="2i6cuYQqOJe" role="3cpWs9">
|
||||
<property role="TrG5h" value="jangoFett2" />
|
||||
<node concept="3uibUv" id="2i6cuYQqOJf" role="1tU5fm">
|
||||
<ref role="3uigEE" to="wyt6:~Cloneable" resolve="Cloneable" />
|
||||
</node>
|
||||
<node concept="37vLTw" id="2i6cuYQqOXR" role="33vP2m">
|
||||
<ref role="3cqZAo" node="2i6cuYQqNHD" resolve="is" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3cpWs8" id="2i6cuYQq_eF" role="3cqZAp">
|
||||
<node concept="3cpWsn" id="2i6cuYQq_eG" role="3cpWs9">
|
||||
<property role="TrG5h" value="bobaFett" />
|
||||
<node concept="3uibUv" id="2i6cuYQq_eH" role="1tU5fm">
|
||||
<ref role="3uigEE" to="wyt6:~Cloneable" resolve="Cloneable" />
|
||||
</node>
|
||||
<node concept="37vLTw" id="2i6cuYQq_nW" role="33vP2m">
|
||||
<ref role="3cqZAo" node="2i6cuYQqxgN" resolve="cs" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3Tm1VV" id="2i6cuYQqw$U" role="1B3o_S" />
|
||||
<node concept="3cqZAl" id="2i6cuYQqwGS" role="3clF45" />
|
||||
<node concept="37vLTG" id="2i6cuYQqAv0" role="3clF46">
|
||||
<property role="TrG5h" value="os" />
|
||||
<node concept="10Q1$e" id="2i6cuYQqA_N" role="1tU5fm">
|
||||
<node concept="3uibUv" id="2i6cuYQqA_K" role="10Q1$1">
|
||||
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="37vLTG" id="2i6cuYQqwT0" role="3clF46">
|
||||
<property role="TrG5h" value="as" />
|
||||
<node concept="10Q1$e" id="2i6cuYQqwXD" role="1tU5fm">
|
||||
<node concept="3uibUv" id="2i6cuYQqwSZ" role="10Q1$1">
|
||||
<ref role="3uigEE" node="2i6cuYQqvtI" resolve="ArraySubtyping.A" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="37vLTG" id="2i6cuYQqx2n" role="3clF46">
|
||||
<property role="TrG5h" value="bs" />
|
||||
<node concept="10Q1$e" id="2i6cuYQqx6H" role="1tU5fm">
|
||||
<node concept="3uibUv" id="2i6cuYQqx6E" role="10Q1$1">
|
||||
<ref role="3uigEE" node="2i6cuYQqvN_" resolve="ArraySubtyping.B" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="37vLTG" id="2i6cuYQqxgN" role="3clF46">
|
||||
<property role="TrG5h" value="cs" />
|
||||
<node concept="10Q1$e" id="2i6cuYQqxhk" role="1tU5fm">
|
||||
<node concept="3uibUv" id="2i6cuYQqxhh" role="10Q1$1">
|
||||
<ref role="3uigEE" node="2i6cuYQqvO7" resolve="ArraySubtyping.C" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="37vLTG" id="2i6cuYQqNHD" role="3clF46">
|
||||
<property role="TrG5h" value="is" />
|
||||
<node concept="10Q1$e" id="2i6cuYQqNOZ" role="1tU5fm">
|
||||
<node concept="10Oyi0" id="2i6cuYQqNOw" role="10Q1$1" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="3Tm1VV" id="2i6cuYQqrTN" role="1B3o_S" />
|
||||
</node>
|
||||
</model>
|
||||
|
||||
|
|
|
|||
|
|
@ -501,6 +501,35 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="1LZb2c" id="2i6cuYQszS0" role="1SL9yI">
|
||||
<property role="TrG5h" value="arraySubtyping" />
|
||||
<node concept="3cqZAl" id="2i6cuYQszS1" role="3clF45" />
|
||||
<node concept="3clFbS" id="2i6cuYQszS2" role="3clF47">
|
||||
<node concept="2Hmddi" id="2i6cuYQszS3" role="3cqZAp">
|
||||
<node concept="2OqwBi" id="2i6cuYQszS4" role="2Hmdds">
|
||||
<node concept="2YIFZM" id="2i6cuYQszS5" role="2Oq$k0">
|
||||
<ref role="37wK5l" to="tj24:27bTNFfaOo$" resolve="ofNode" />
|
||||
<ref role="1Pybhc" to="tj24:1N_0WA5JxZO" resolve="TypecheckingTestHelper" />
|
||||
<node concept="2OqwBi" id="2i6cuYQszS6" role="37wK5m">
|
||||
<node concept="2WthIp" id="2i6cuYQszS7" role="2Oq$k0" />
|
||||
<node concept="2XshWL" id="2i6cuYQszS8" role="2OqNvi">
|
||||
<ref role="2WH_rO" node="35YJGAJTxCf" resolve="resolve" />
|
||||
<node concept="2tJFMh" id="2i6cuYQszS9" role="2XxRq1">
|
||||
<node concept="ZC_QK" id="2i6cuYQs$wm" role="2tJFKM">
|
||||
<ref role="2aWVGs" to="yg5v:2i6cuYQqrTM" resolve="ArraySubtyping" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="1jxXqW" id="2i6cuYQszSb" role="37wK5m" />
|
||||
</node>
|
||||
<node concept="liA8E" id="2i6cuYQszSc" role="2OqNvi">
|
||||
<ref role="37wK5l" to="tj24:27bTNFfaYS2" resolve="checkTypes" />
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node concept="1LZb2c" id="1yt2T3T4T6U" role="1SL9yI">
|
||||
<property role="TrG5h" value="varargs" />
|
||||
<node concept="3cqZAl" id="1yt2T3T4T6V" role="3clF45" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue