Fix sequence types: support covariance with upper bound type

This commit is contained in:
Fedor Isakov 2021-04-29 14:49:21 +02:00
parent 287c31c9f7
commit d407eb2676
1 changed files with 103 additions and 3 deletions

View File

@ -374,9 +374,17 @@
<ref role="ns1xF" node="3MFPGC50Ab3" resolve="sequence" />
<node concept="nsMwS" id="3MFPGC50KDE" role="ns1xD">
<ref role="nsMwP" node="3MFPGC50Aiu" resolve="elem" />
<node concept="1nq8_$" id="3MFPGC50KDF" role="nsMwV">
<node concept="a7P8L" id="3MFPGC50KDG" role="1nq8_t">
<ref role="a7OzE" node="3MFPGC50KDK" resolve="SElem" />
<node concept="1nq8_$" id="6BxgBHb9Wc2" role="nsMwV">
<node concept="ns1u0" id="6BxgBHb9Wc1" role="1nq8_t">
<ref role="ns1xF" to="kqnc:JOGAOsVt2u" resolve="upperBound" />
<node concept="nsMwS" id="6BxgBHb9Wc7" role="ns1xD">
<ref role="nsMwP" to="kqnc:39Sam6YgyvP" resolve="parameter" />
<node concept="1nq8_$" id="6BxgBHb9Wcf" role="nsMwV">
<node concept="a7P8L" id="6BxgBHb9Wce" role="1nq8_t">
<ref role="a7OzE" node="3MFPGC50KDK" resolve="SElem" />
</node>
</node>
</node>
</node>
</node>
</node>
@ -434,6 +442,98 @@
</node>
</node>
</node>
<node concept="3clFbH" id="6BxgBHb9WaO" role="3cqZAp" />
<node concept="1nLNNL" id="6BxgBHb9W8k" role="3cqZAp">
<node concept="1nLNMm" id="6BxgBHb9W8l" role="1nLNNK">
<node concept="3Aq93q" id="6BxgBHb9W8m" role="1nLNMb">
<node concept="3I6sU6" id="6BxgBHb9W8n" role="3Ip0Jz">
<node concept="3I6s7M" id="6BxgBHb9W8o" role="3I6sU7">
<node concept="3Aqt3T" id="6BxgBHb9W8p" role="3I6s78">
<ref role="3AqCNq" to="kqnc:3vTJNooZDgN" resolve="convertsTo" />
<node concept="1HFMs5" id="6BxgBHb9W8q" role="3AunhB">
<node concept="a7P8L" id="6BxgBHb9W8r" role="1uarlU">
<ref role="a7OzE" node="6BxgBHb9W8D" resolve="T" />
</node>
<node concept="ns1u0" id="6BxgBHb9W8s" role="1uarlW">
<ref role="ns1xF" node="3MFPGC50Ab3" resolve="sequence" />
<node concept="nsMwS" id="6BxgBHb9W8t" role="ns1xD">
<ref role="nsMwP" node="3MFPGC50Aiu" resolve="elem" />
<node concept="1nq8_$" id="6BxgBHb9W8u" role="nsMwV">
<node concept="a7P8L" id="6BxgBHb9W8v" role="1nq8_t">
<ref role="a7OzE" node="6BxgBHb9W8F" resolve="TElem" />
</node>
</node>
</node>
</node>
</node>
<node concept="1HFMs5" id="6BxgBHb9W8w" role="3AunhB">
<node concept="a7P8L" id="6BxgBHb9W8x" role="1uarlU">
<ref role="a7OzE" node="6BxgBHb9W8C" resolve="S" />
</node>
<node concept="ns1u0" id="6BxgBHb9W8y" role="1uarlW">
<ref role="ns1xF" node="3MFPGC50Ab3" resolve="sequence" />
<node concept="nsMwS" id="6BxgBHb9W8z" role="ns1xD">
<ref role="nsMwP" node="3MFPGC50Aiu" resolve="elem" />
<node concept="1nq8_$" id="6BxgBHb9W8$" role="nsMwV">
<node concept="a7P8L" id="6BxgBHb9W8_" role="1nq8_t">
<ref role="a7OzE" node="6BxgBHb9W8E" resolve="SElem" />
</node>
</node>
</node>
</node>
</node>
<node concept="a7P8L" id="6BxgBHb9W8A" role="3AunhB">
<ref role="a7OzE" node="6BxgBHb9W8R" resolve="Options" />
</node>
</node>
</node>
</node>
</node>
<node concept="3NuqgR" id="6BxgBHb9W8B" role="0Rg$4">
<node concept="aZer4" id="6BxgBHb9W8C" role="3XD1gS">
<property role="TrG5h" value="S" />
</node>
<node concept="aZer4" id="6BxgBHb9W8D" role="3XD1gS">
<property role="TrG5h" value="T" />
</node>
<node concept="aZer4" id="6BxgBHb9W8E" role="3XD1gS">
<property role="TrG5h" value="SElem" />
</node>
<node concept="aZer4" id="6BxgBHb9W8F" role="3XD1gS">
<property role="TrG5h" value="TElem" />
</node>
<node concept="32pEOW" id="6BxgBHb9W8G" role="3vLBG7" />
</node>
<node concept="3xSepi" id="6BxgBHb9W8H" role="3xSepv">
<node concept="3Aq9E8" id="6BxgBHb9W8I" role="3xSepj">
<node concept="3I6sU6" id="6BxgBHb9W8J" role="3Ip0Jz">
<node concept="3I6s7M" id="6BxgBHb9W8K" role="3I6sU7">
<node concept="3Aqt3T" id="6BxgBHb9W8L" role="3I6s78">
<ref role="3AqCNq" to="kqnc:3vTJNooZDgN" resolve="convertsTo" />
<node concept="a7P8L" id="6BxgBHb9W8M" role="3AunhB">
<ref role="a7OzE" node="6BxgBHb9W8F" resolve="TElem" />
</node>
<node concept="a7P8L" id="6BxgBHb9W8N" role="3AunhB">
<ref role="a7OzE" node="6BxgBHb9W8E" resolve="SElem" />
</node>
<node concept="a7P8L" id="6BxgBHb9W8O" role="3AunhB">
<ref role="a7OzE" node="6BxgBHb9W8R" resolve="Options" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3NuqgR" id="6BxgBHb9W8P" role="0Rg$4">
<node concept="3uibUv" id="6BxgBHb9W8Q" role="3vLBG7">
<ref role="3uigEE" to="kqnc:3vTJNooZBhQ" resolve="ConvertsContext.Options" />
</node>
<node concept="aZer4" id="6BxgBHb9W8R" role="3XD1gS">
<property role="TrG5h" value="Options" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1nLNMY" id="3MFPGC50D1T" role="1nK1Vg">