Handle case of free vars for ternary operation and primitive subtyping (needed for closures)

This commit is contained in:
Grigorii Kirgizov 2020-05-04 14:37:05 +03:00
parent f6ebd46cb6
commit c6e20d00c2
1 changed files with 133 additions and 50 deletions

View File

@ -23758,6 +23758,22 @@
<node concept="3clFbS" id="12QmIo_7sli" role="1nLNMH">
<node concept="1nLNNL" id="12QmIo_7slj" role="3cqZAp">
<node concept="1nLNMm" id="12QmIo_7slk" role="1nLNNK">
<node concept="3xSepi" id="2MpDLe9GVBm" role="3xSepv">
<node concept="3Aq9E8" id="2MpDLe9GVBn" role="3xSepj">
<node concept="3I6sU6" id="2MpDLe9GVBo" role="3Ip0Jz">
<node concept="3I6s7M" id="2MpDLe9GVBP" role="3I6sU7">
<node concept="3A8Hvi" id="2MpDLe9GVBV" role="3I6s78">
<node concept="a7P8L" id="2MpDLe9GVHw" role="3A8w4Q">
<ref role="a7OzE" node="19nQ_7UPXpp" resolve="T" />
</node>
<node concept="a7P8L" id="2MpDLe9GVBE" role="3A8wtg">
<ref role="a7OzE" node="19nQ_7UPXpg" resolve="S" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aq93q" id="19nQ_7UPXp0" role="1nLNMb">
<node concept="3I6sU6" id="19nQ_7UPXp1" role="3Ip0Jz">
<node concept="3I6s7M" id="19nQ_7UPXDT" role="3I6sU7">
@ -23823,6 +23839,22 @@
<node concept="3clFbS" id="2i6cuYQD6r1" role="1nLNMH">
<node concept="1nLNNL" id="2i6cuYQD6r2" role="3cqZAp">
<node concept="1nLNMm" id="2i6cuYQD6r3" role="1nLNNK">
<node concept="3xSepi" id="2MpDLe9GVHB" role="3xSepv">
<node concept="3Aq9E8" id="2MpDLe9GVHC" role="3xSepj">
<node concept="3I6sU6" id="2MpDLe9GVHD" role="3Ip0Jz">
<node concept="3I6s7M" id="2MpDLe9GVHY" role="3I6sU7">
<node concept="3A8Hvi" id="2MpDLe9GVHV" role="3I6s78">
<node concept="a7P8L" id="2MpDLe9GVI3" role="3A8wtg">
<ref role="a7OzE" node="2i6cuYQD6r6" resolve="S" />
</node>
<node concept="a7P8L" id="2MpDLe9GVIa" role="3A8w4Q">
<ref role="a7OzE" node="2i6cuYQD6r7" resolve="T" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aq93q" id="2i6cuYQD6r8" role="1nLNMb">
<node concept="3I6sU6" id="2i6cuYQD6r9" role="3Ip0Jz">
<node concept="3I6s7M" id="2i6cuYQD6ra" role="3I6sU7">
@ -24986,6 +25018,61 @@
</node>
</node>
</node>
<node concept="1nLNMY" id="35YJGAK4DHI" role="1nK1Vg">
<property role="TrG5h" value="unbox_primitive" />
<node concept="3clFbS" id="35YJGAK4DHJ" role="1nLNMH">
<node concept="1nLNNL" id="35YJGAK4DIJ" role="3cqZAp">
<node concept="1nLNMm" id="35YJGAK4DIK" role="1nLNNK">
<node concept="3Aq93q" id="35YJGAK4DIN" role="1nLNMb">
<property role="3ArMco" value="false" />
<node concept="3I6sU6" id="35YJGAK4DIO" role="3Ip0Jz">
<node concept="3I6s7M" id="35YJGAK4DJ2" role="3I6sU7">
<node concept="3Aqt3T" id="35YJGAK4DJ1" role="3I6s78">
<ref role="3AqCNq" node="35YJGAK4DH_" resolve="unbox" />
<node concept="a7P8L" id="35YJGAK4DJ7" role="3AunhB">
<ref role="a7OzE" node="35YJGAK4DIV" resolve="U" />
</node>
<node concept="1HFMs5" id="35YJGAK4DJi" role="3AunhB">
<node concept="a7P8L" id="35YJGAK4DJd" role="1uarlU">
<ref role="a7OzE" node="35YJGAK4DIY" resolve="T" />
</node>
<node concept="ns1u0" id="35YJGAK4DJq" role="1uarlW">
<ref role="ns1xF" node="JOGAOsVt2A" resolve="prim" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3NuqgR" id="35YJGAK4DIU" role="0Rg$4">
<node concept="aZer4" id="35YJGAK4DIV" role="3XD1gS">
<property role="TrG5h" value="U" />
</node>
<node concept="aZer4" id="35YJGAK4DIY" role="3XD1gS">
<property role="TrG5h" value="T" />
</node>
<node concept="32pEOW" id="24ciDNzxNEN" role="3vLBG7" />
</node>
<node concept="3xSepi" id="6E2cNicdik8" role="3xSepv">
<node concept="3Aq9E8" id="35YJGAK4DJt" role="3xSepj">
<node concept="3I6sU6" id="35YJGAK4DJu" role="3Ip0Jz">
<node concept="3I6s7M" id="35YJGAK4DJ$" role="3I6sU7">
<node concept="3A8Hvi" id="35YJGAK4DJx" role="3I6s78">
<node concept="a7P8L" id="35YJGAK4DJD" role="3A8wtg">
<ref role="a7OzE" node="35YJGAK4DIV" resolve="U" />
</node>
<node concept="a7P8L" id="35YJGAK4DJG" role="3A8w4Q">
<ref role="a7OzE" node="35YJGAK4DIY" resolve="T" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1nLNMY" id="5XJPBczwlW3" role="1nK1Vg">
<property role="TrG5h" value="unbox_classifier" />
<node concept="3clFbS" id="5XJPBczwlW4" role="1nLNMH">
@ -25462,52 +25549,58 @@
</node>
</node>
</node>
<node concept="1nLNMY" id="35YJGAK4DHI" role="1nK1Vg">
<property role="TrG5h" value="unbox_primitive" />
<node concept="3clFbS" id="35YJGAK4DHJ" role="1nLNMH">
<node concept="1nLNNL" id="35YJGAK4DIJ" role="3cqZAp">
<node concept="1nLNMm" id="35YJGAK4DIK" role="1nLNNK">
<node concept="3Aq93q" id="35YJGAK4DIN" role="1nLNMb">
<node concept="1nLNMY" id="2MpDLe9DC68" role="1nK1Vg">
<property role="TrG5h" value="unbox_unbound" />
<node concept="3clFbS" id="2MpDLe9DC69" role="1nLNMH">
<node concept="1nLNNL" id="2MpDLe9DC6a" role="3cqZAp">
<node concept="1nLNMm" id="2MpDLe9DC6b" role="1nLNNK">
<node concept="3Aq93q" id="2MpDLe9DC6c" role="1nLNMb">
<property role="3ArMco" value="false" />
<node concept="3I6sU6" id="35YJGAK4DIO" role="3Ip0Jz">
<node concept="3I6s7M" id="35YJGAK4DJ2" role="3I6sU7">
<node concept="3Aqt3T" id="35YJGAK4DJ1" role="3I6s78">
<node concept="3I6sU6" id="2MpDLe9DC6d" role="3Ip0Jz">
<node concept="3I6s7M" id="2MpDLe9DC6e" role="3I6sU7">
<node concept="3Aqt3T" id="2MpDLe9DC6f" role="3I6s78">
<ref role="3AqCNq" node="35YJGAK4DH_" resolve="unbox" />
<node concept="a7P8L" id="35YJGAK4DJ7" role="3AunhB">
<ref role="a7OzE" node="35YJGAK4DIV" resolve="U" />
<node concept="a7P8L" id="2MpDLe9DC6g" role="3AunhB">
<ref role="a7OzE" node="2MpDLe9DC6j" resolve="U" />
</node>
<node concept="1HFMs5" id="35YJGAK4DJi" role="3AunhB">
<node concept="a7P8L" id="35YJGAK4DJd" role="1uarlU">
<ref role="a7OzE" node="35YJGAK4DIY" resolve="T" />
<node concept="a7P8L" id="2MpDLe9DC6h" role="3AunhB">
<ref role="a7OzE" node="2MpDLe9DC6k" resolve="T" />
</node>
</node>
</node>
</node>
</node>
<node concept="3NuqgR" id="2MpDLe9DC6i" role="0Rg$4">
<node concept="aZer4" id="2MpDLe9DC6j" role="3XD1gS">
<property role="TrG5h" value="U" />
</node>
<node concept="aZer4" id="2MpDLe9DC6k" role="3XD1gS">
<property role="TrG5h" value="T" />
</node>
<node concept="32pEOW" id="2MpDLe9DC6l" role="3vLBG7" />
</node>
<node concept="3xSepi" id="2MpDLe9DC6m" role="3xSepv">
<node concept="3Aq9E8" id="2MpDLe9DC6n" role="3xSepj">
<node concept="3I6sU6" id="2MpDLe9DC6o" role="3Ip0Jz">
<node concept="3I6s7M" id="2MpDLe9DClh" role="3I6sU7">
<node concept="3A8Hvi" id="2MpDLe9DCle" role="3I6s78">
<node concept="a7P8L" id="2MpDLe9DClm" role="3A8wtg">
<ref role="a7OzE" node="2MpDLe9DC6j" resolve="U" />
</node>
<node concept="ns1u0" id="35YJGAK4DJq" role="1uarlW">
<ref role="ns1xF" node="JOGAOsVt2A" resolve="prim" />
<node concept="a7P8L" id="2MpDLe9DClt" role="3A8w4Q">
<ref role="a7OzE" node="2MpDLe9DC6k" resolve="T" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3NuqgR" id="35YJGAK4DIU" role="0Rg$4">
<node concept="aZer4" id="35YJGAK4DIV" role="3XD1gS">
<property role="TrG5h" value="U" />
</node>
<node concept="aZer4" id="35YJGAK4DIY" role="3XD1gS">
<property role="TrG5h" value="T" />
</node>
<node concept="32pEOW" id="24ciDNzxNEN" role="3vLBG7" />
</node>
<node concept="3xSepi" id="6E2cNicdik8" role="3xSepv">
<node concept="3Aq9E8" id="35YJGAK4DJt" role="3xSepj">
<node concept="3I6sU6" id="35YJGAK4DJu" role="3Ip0Jz">
<node concept="3I6s7M" id="35YJGAK4DJ$" role="3I6sU7">
<node concept="3A8Hvi" id="35YJGAK4DJx" role="3I6s78">
<node concept="a7P8L" id="35YJGAK4DJD" role="3A8wtg">
<ref role="a7OzE" node="35YJGAK4DIV" resolve="U" />
</node>
<node concept="a7P8L" id="35YJGAK4DJG" role="3A8w4Q">
<ref role="a7OzE" node="35YJGAK4DIY" resolve="T" />
</node>
<node concept="3Aq9_M" id="2MpDLe9DCk9" role="1nLNMa">
<node concept="3I6sU6" id="2MpDLe9DCka" role="3Ip0Jz">
<node concept="3I6s7M" id="2MpDLe9DCke" role="3I6sU7">
<node concept="2aLmEc" id="2MpDLe9DCkd" role="3I6s78">
<node concept="a7P8L" id="2MpDLe9DCkq" role="2aLmnP">
<ref role="a7OzE" node="2MpDLe9DC6k" resolve="T" />
</node>
</node>
</node>
@ -33601,21 +33694,11 @@
<node concept="a7P8L" id="7MFi2qBl6tw" role="3AunhB">
<ref role="a7OzE" node="7MFi2qBl6tC" resolve="Out" />
</node>
<node concept="1HFMs5" id="7MFi2qBl6tx" role="3AunhB">
<node concept="a7P8L" id="7MFi2qBl6ty" role="1uarlU">
<ref role="a7OzE" node="7MFi2qBl6tD" resolve="InS" />
</node>
<node concept="ns1u0" id="7MFi2qBl6tz" role="1uarlW">
<ref role="ns1xF" node="JOGAOsVt2A" resolve="prim" />
</node>
<node concept="a7P8L" id="7MFi2qBl6ty" role="3AunhB">
<ref role="a7OzE" node="7MFi2qBl6tD" resolve="InS" />
</node>
<node concept="1HFMs5" id="7MFi2qBl6t$" role="3AunhB">
<node concept="a7P8L" id="7MFi2qBl6t_" role="1uarlU">
<ref role="a7OzE" node="7MFi2qBl6tE" resolve="InT" />
</node>
<node concept="ns1u0" id="7MFi2qBl6tA" role="1uarlW">
<ref role="ns1xF" node="JOGAOsVt2A" resolve="prim" />
</node>
<node concept="a7P8L" id="7MFi2qBl6t_" role="3AunhB">
<ref role="a7OzE" node="7MFi2qBl6tE" resolve="InT" />
</node>
</node>
</node>