Add check that all aux boudns in type var decl are interfaces. Add test for such error.

This commit is contained in:
Grigorii Kirgizov 2019-10-26 15:43:48 +03:00
parent 0e33bffa96
commit 1b4a5ce55d
2 changed files with 65 additions and 62 deletions

View File

@ -34535,14 +34535,11 @@
<node concept="aZer4" id="6cPUNFQQ4E5" role="3XD1gS">
<property role="TrG5h" value="MainBnd" />
</node>
<node concept="aZer4" id="66mZxBQihwn" role="3XD1gS">
<property role="TrG5h" value="Aux" />
</node>
<node concept="aZer4" id="6cPUNFQPHJ7" role="3XD1gS">
<property role="TrG5h" value="AuxBnds" />
<node concept="2OqwBi" id="6cPUNFQPKku" role="3gj$pD">
<node concept="2OqwBi" id="6cPUNFQPHLT" role="2Oq$k0">
<node concept="3tDTZT" id="6cPUNFQPHJC" role="2Oq$k0">
<node concept="3tDTZT" id="4n0emEk0IFK" role="2Oq$k0">
<ref role="3tDTNw" node="7XRk2O3zfwZ" resolve="tvd1" />
</node>
<node concept="3Tsc0h" id="6cPUNFQPHMU" role="2OqNvi">
@ -34593,12 +34590,11 @@
<property role="Xl_RC" value="Interface expected" />
</node>
<node concept="3G3gwz" id="6cPUNFQQ1f8" role="3Gvizk">
<node concept="1nq8_$" id="6cPUNFQQ1lI" role="3G3gzb">
<node concept="3BlFb$" id="6cPUNFQQ1lE" role="1nq8_t">
<node concept="37vLTw" id="6cPUNFQQ1sg" role="3BlFb_">
<ref role="3cqZAo" node="6cPUNFQPVYo" resolve="auxBnd" />
</node>
<node concept="2OqwBi" id="4n0emEjM0k4" role="3G3gzb">
<node concept="37vLTw" id="4n0emEjM09A" role="2Oq$k0">
<ref role="3cqZAo" node="6cPUNFQPVYo" resolve="auxBnd" />
</node>
<node concept="iZEcu" id="4n0emEjM0Ka" role="2OqNvi" />
</node>
</node>
</node>
@ -34656,7 +34652,7 @@
</node>
<node concept="3Aqczg" id="6cPUNFQQ4Fo" role="3cqZAp">
<node concept="1imXTs" id="6cPUNFQQ4Fi" role="3Aqpz8">
<node concept="a7P8L" id="6cPUNFQQ4Ge" role="1imXu6">
<node concept="a7P8L" id="4n0emEk0IDu" role="1imXu6">
<ref role="a7OzE" node="6cPUNFQQ4E5" resolve="MainBnd" />
</node>
<node concept="2OqwBi" id="6cPUNFQQ4Ix" role="1imXSf">
@ -34669,24 +34665,6 @@
</node>
</node>
</node>
<node concept="3Aqczg" id="66mZxBQihyb" role="3cqZAp">
<node concept="3A8Hvi" id="66mZxBQihy5" role="3Aqpz8">
<node concept="a7P8L" id="66mZxBQihzk" role="3A8wtg">
<ref role="a7OzE" node="66mZxBQihwn" resolve="Aux" />
</node>
<node concept="Hz6ka" id="66mZxBQihzp" role="3A8w4Q">
<node concept="KCUsM" id="66mZxBQihzr" role="Hz6kd">
<node concept="22Ky0T" id="66mZxBQih_x" role="lGtFl">
<node concept="1nq8_$" id="66mZxBQih_$" role="22Ky0K">
<node concept="a7P8L" id="66mZxBQih_z" role="1nq8_t">
<ref role="a7OzE" node="6cPUNFQPHJ7" resolve="AuxBnds" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="6cPUNFQQ4Ct" role="3cqZAp">
<node concept="3A8Hvi" id="6cPUNFQQ4Cn" role="3Aqpz8">
<node concept="a7P8L" id="6cPUNFQQ4D7" role="3A8wtg">
@ -34700,13 +34678,13 @@
<node concept="Hz6ka" id="6cPUNFQQ4Dr" role="1nq8_t">
<node concept="3wJAYo" id="66mZxBQgkCR" role="Hz6kd">
<node concept="3wAshV" id="66mZxBQgkD2" role="KCVpo">
<node concept="a7P8L" id="66mZxBQgkD1" role="3wAq21">
<node concept="a7P8L" id="4n0emEk0IDA" role="3wAq21">
<ref role="a7OzE" node="6cPUNFQQ4E5" resolve="MainBnd" />
</node>
</node>
<node concept="3wAshV" id="66mZxBQgkD8" role="3wIGS_">
<node concept="a7P8L" id="66mZxBQih_F" role="3wAq21">
<ref role="a7OzE" node="66mZxBQihwn" resolve="Aux" />
<node concept="a7P8L" id="4n0emEk0IDy" role="3wAq21">
<ref role="a7OzE" node="6cPUNFQPHJ7" resolve="AuxBnds" />
</node>
</node>
</node>
@ -34967,14 +34945,11 @@
<node concept="aZer4" id="66mZxBQ7VAa" role="3XD1gS">
<property role="TrG5h" value="MainBnd" />
</node>
<node concept="aZer4" id="66mZxBQkbKs" role="3XD1gS">
<property role="TrG5h" value="Aux" />
</node>
<node concept="aZer4" id="66mZxBQ7VAb" role="3XD1gS">
<property role="TrG5h" value="AuxBnds" />
<node concept="2OqwBi" id="66mZxBQ7VAc" role="3gj$pD">
<node concept="2OqwBi" id="66mZxBQ7VAd" role="2Oq$k0">
<node concept="3tDTZT" id="66mZxBQ7VAe" role="2Oq$k0">
<node concept="3tDTZT" id="4n0emEk0IEQ" role="2Oq$k0">
<ref role="3tDTNw" node="W6bnNdyqdy" resolve="tvd1" />
</node>
<node concept="3Tsc0h" id="66mZxBQ7VAf" role="2OqNvi">
@ -35025,12 +35000,11 @@
<property role="Xl_RC" value="Interface expected" />
</node>
<node concept="3G3gwz" id="66mZxBQ7VAz" role="3Gvizk">
<node concept="1nq8_$" id="66mZxBQ7VA$" role="3G3gzb">
<node concept="3BlFb$" id="66mZxBQ7VA_" role="1nq8_t">
<node concept="37vLTw" id="66mZxBQ7VAA" role="3BlFb_">
<ref role="3cqZAo" node="66mZxBQ7VAQ" resolve="auxBnd" />
</node>
<node concept="2OqwBi" id="4n0emEjNUz3" role="3G3gzb">
<node concept="37vLTw" id="4n0emEjNUw_" role="2Oq$k0">
<ref role="3cqZAo" node="66mZxBQ7VAQ" resolve="auxBnd" />
</node>
<node concept="iZEcu" id="4n0emEjNUO5" role="2OqNvi" />
</node>
</node>
</node>
@ -35088,7 +35062,7 @@
</node>
<node concept="3Aqczg" id="66mZxBQ7VAV" role="3cqZAp">
<node concept="1imXTs" id="66mZxBQ7VAW" role="3Aqpz8">
<node concept="a7P8L" id="66mZxBQ7VAX" role="1imXu6">
<node concept="a7P8L" id="4n0emEk0IDw" role="1imXu6">
<ref role="a7OzE" node="66mZxBQ7VAa" resolve="MainBnd" />
</node>
<node concept="2OqwBi" id="66mZxBQ7VAY" role="1imXSf">
@ -35101,24 +35075,6 @@
</node>
</node>
</node>
<node concept="3Aqczg" id="66mZxBQkcya" role="3cqZAp">
<node concept="3A8Hvi" id="66mZxBQkcyb" role="3Aqpz8">
<node concept="a7P8L" id="66mZxBQkcyc" role="3A8wtg">
<ref role="a7OzE" node="66mZxBQkbKs" resolve="Aux" />
</node>
<node concept="Hz6ka" id="66mZxBQkcyd" role="3A8w4Q">
<node concept="KCUsM" id="66mZxBQkcye" role="Hz6kd">
<node concept="22Ky0T" id="66mZxBQkcyf" role="lGtFl">
<node concept="1nq8_$" id="66mZxBQkcyg" role="22Ky0K">
<node concept="a7P8L" id="66mZxBQkcyh" role="1nq8_t">
<ref role="a7OzE" node="66mZxBQ7VAb" resolve="AuxBnds" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="66mZxBQkcyi" role="3cqZAp">
<node concept="3A8Hvi" id="66mZxBQkcyj" role="3Aqpz8">
<node concept="a7P8L" id="66mZxBQkcyk" role="3A8wtg">
@ -35132,13 +35088,13 @@
<node concept="Hz6ka" id="66mZxBQkcyo" role="1nq8_t">
<node concept="3wJAYo" id="66mZxBQkcyp" role="Hz6kd">
<node concept="3wAshV" id="66mZxBQkcyq" role="KCVpo">
<node concept="a7P8L" id="66mZxBQkcyr" role="3wAq21">
<node concept="a7P8L" id="4n0emEk0IES" role="3wAq21">
<ref role="a7OzE" node="66mZxBQ7VAa" resolve="MainBnd" />
</node>
</node>
<node concept="3wAshV" id="66mZxBQkcys" role="3wIGS_">
<node concept="a7P8L" id="66mZxBQkcyt" role="3wAq21">
<ref role="a7OzE" node="66mZxBQkbKs" resolve="Aux" />
<node concept="a7P8L" id="4n0emEk0ID$" role="3wAq21">
<ref role="a7OzE" node="66mZxBQ7VAb" resolve="AuxBnds" />
</node>
</node>
</node>

View File

@ -4,6 +4,7 @@
<languages>
<use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="9" />
<use id="0fda14cc-a416-4c81-869a-2175d8b3325d" name="jetbrains.mps.baseLanguageExt" version="0" />
<use id="0b80a2e8-f9f1-47b3-823f-56eb115bca42" name="jetbrains.mps.typechecking.annotation" version="0" />
</languages>
<imports>
<import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" />
@ -49,6 +50,7 @@
</concept>
<concept id="1109279763828" name="jetbrains.mps.baseLanguage.structure.TypeVariableDeclaration" flags="ng" index="16euLQ">
<child id="1214996921760" name="bound" index="3ztrMU" />
<child id="1215091156086" name="auxBounds" index="3D4UlG" />
</concept>
<concept id="1109279851642" name="jetbrains.mps.baseLanguage.structure.GenericDeclaration" flags="ng" index="16eOlS">
<child id="1109279881614" name="typeVariableDeclaration" index="16eVyc" />
@ -110,7 +112,15 @@
<concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
<concept id="1146644623116" name="jetbrains.mps.baseLanguage.structure.PrivateVisibility" flags="nn" index="3Tm6S6" />
</language>
<language id="0b80a2e8-f9f1-47b3-823f-56eb115bca42" name="jetbrains.mps.typechecking.annotation">
<concept id="1942415814694854601" name="jetbrains.mps.typechecking.annotation.structure.ErrorAnnotation" flags="ng" index="1U20sH">
<property id="1942415814694854612" name="text" index="1U20sK" />
</concept>
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
<child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
</concept>
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
@ -205,6 +215,43 @@
<property role="TrG5h" value="Doh" />
<node concept="3Tm6S6" id="1UWNDKzp_N$" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="66mZxBQrfIr" role="jymVt" />
<node concept="3clFb_" id="66mZxBQrgcJ" role="jymVt">
<property role="TrG5h" value="foo" />
<node concept="3clFbS" id="66mZxBQrgcM" role="3clF47">
<node concept="3cpWs6" id="66mZxBQrh8i" role="3cqZAp">
<node concept="10Nm6u" id="66mZxBQrhgj" role="3cqZAk" />
</node>
</node>
<node concept="3Tm6S6" id="66mZxBQrg34" role="1B3o_S" />
<node concept="16euLQ" id="66mZxBQrgiN" role="16eVyc">
<property role="TrG5h" value="T" />
<node concept="3uibUv" id="66mZxBQrg_D" role="3ztrMU">
<ref role="3uigEE" to="wyt6:~Number" resolve="Number" />
</node>
<node concept="3uibUv" id="66mZxBQrgHs" role="3D4UlG">
<ref role="3uigEE" to="wyt6:~Comparable" resolve="Comparable" />
</node>
<node concept="3uibUv" id="4n0emEk0GTD" role="3D4UlG">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
<node concept="1U20sH" id="4n0emEk0Hnw" role="lGtFl">
<property role="1U20sK" value="error" />
</node>
</node>
<node concept="3uibUv" id="4n0emEk0HeA" role="3D4UlG">
<ref role="3uigEE" to="guwi:~Serializable" resolve="Serializable" />
</node>
<node concept="3uibUv" id="66mZxBQrgPs" role="3D4UlG">
<ref role="3uigEE" to="wyt6:~String" resolve="String" />
<node concept="1U20sH" id="66mZxBQriqI" role="lGtFl">
<property role="1U20sK" value="error" />
</node>
</node>
</node>
<node concept="16syzq" id="66mZxBQrh11" role="3clF45">
<ref role="16sUi3" node="66mZxBQrgiN" resolve="T" />
</node>
</node>
<node concept="2tJIrI" id="7yvZ58OTDwk" role="jymVt" />
<node concept="3clFb_" id="7t5VLKHf_4i" role="jymVt">
<property role="TrG5h" value="fun" />