Fix incorrect vis scopes due to failing coerceTo queries. Assign 'fallback' type in classifierType macro on error to continue typechecking besides returning error.

The problem is concerned from incorrect recover of captureType given recent changes to its handling.
Essentially, recover was losing information about inferred type var bounds.
Also, necessary rule for convertsTo for upperBpundType was missing.
This commit is contained in:
Grigorii Kirgizov 2019-10-28 20:55:24 +03:00
parent 3016ffd904
commit 530dfd8719
2 changed files with 613 additions and 11 deletions

View File

@ -15036,6 +15036,19 @@
<node concept="1nLNMY" id="12QmIo_7siw" role="1nK1Vg">
<property role="TrG5h" value="converts_upperBoundType_bound" />
<node concept="3clFbS" id="12QmIo_7six" role="1nLNMH">
<node concept="3SKdUt" id="1fKFQTSrQtd" role="3cqZAp">
<node concept="1PaTwC" id="1fKFQTSrQte" role="3ndbpf">
<node concept="3oM_SD" id="1fKFQTSrQtg" role="1PaTwD">
<property role="3oM_SC" value="fixme:" />
</node>
<node concept="3oM_SD" id="1fKFQTSrQxx" role="1PaTwD">
<property role="3oM_SC" value="check" />
</node>
<node concept="3oM_SD" id="1fKFQTSrQx$" role="1PaTwD">
<property role="3oM_SC" value="correctness" />
</node>
</node>
</node>
<node concept="1nLNNL" id="12QmIo_7siy" role="3cqZAp">
<node concept="1nLNMm" id="12QmIo_7siz" role="1nLNNK">
<node concept="0eUR_" id="7lt0LtPBjTl" role="0UC6o">
@ -15098,6 +15111,71 @@
</node>
</node>
</node>
<node concept="1nLNMY" id="1fKFQTSrPcv" role="1nK1Vg">
<property role="TrG5h" value="converts_any_upperBoundType" />
<node concept="3clFbS" id="1fKFQTSrPcw" role="1nLNMH">
<node concept="1nLNNL" id="1fKFQTSrPcx" role="3cqZAp">
<node concept="1nLNMm" id="1fKFQTSrPcy" role="1nLNNK">
<node concept="0eUR_" id="1fKFQTSrPcz" role="0UC6o">
<node concept="3NuqgR" id="1fKFQTSrPc$" role="0eVf_">
<node concept="aZer4" id="1fKFQTSrPc_" role="3XD1gS">
<property role="TrG5h" value="Type" />
</node>
<node concept="aZer4" id="1fKFQTSrPcA" role="3XD1gS">
<property role="TrG5h" value="UBType" />
</node>
<node concept="aZer4" id="1fKFQTSrPcB" role="3XD1gS">
<property role="TrG5h" value="UBnd" />
</node>
</node>
</node>
<node concept="3Aq93q" id="1fKFQTSrPcC" role="1nLNMb">
<node concept="3I6sU6" id="1fKFQTSrPcD" role="3Ip0Jz">
<node concept="3I6s7M" id="1fKFQTSrPcE" role="3I6sU7">
<node concept="3Aqt3T" id="1fKFQTSrPcF" role="3I6s78">
<ref role="3AqCNq" node="3Qp4N06bUPu" resolve="convertsTo" />
<node concept="1HFMs5" id="1fKFQTSrPcH" role="3AunhB">
<node concept="ns1u0" id="1fKFQTSrPcI" role="1uarlW">
<ref role="ns1xF" node="JOGAOsVt2u" resolve="upperBoundType" />
<node concept="nsMwS" id="1fKFQTSrPcJ" role="ns1xD">
<ref role="nsMwP" node="39Sam6YgyvP" resolve="parameter" />
<node concept="1nq8_$" id="1fKFQTSrPcK" role="nsMwV">
<node concept="a7P8L" id="1fKFQTSrPcL" role="1nq8_t">
<ref role="a7OzE" node="1fKFQTSrPcB" resolve="UBnd" />
</node>
</node>
</node>
</node>
<node concept="a7P8L" id="1fKFQTSrPcM" role="1uarlU">
<ref role="a7OzE" node="1fKFQTSrPcA" resolve="UBType" />
</node>
</node>
<node concept="a7P8L" id="1fKFQTSrPYg" role="3AunhB">
<ref role="a7OzE" node="1fKFQTSrPc_" resolve="Type" />
</node>
</node>
</node>
</node>
</node>
<node concept="3Aq9E8" id="1fKFQTSrPcN" role="1nLNMd">
<node concept="3I6sU6" id="1fKFQTSrPcO" role="3Ip0Jz">
<node concept="3I6s7M" id="1fKFQTSrPcP" role="3I6sU7">
<node concept="3Aqt3T" id="1fKFQTSrPcQ" role="3I6s78">
<ref role="3AqCNq" node="3Qp4N06bUPu" resolve="convertsTo" />
<node concept="a7P8L" id="1fKFQTSrPcR" role="3AunhB">
<ref role="a7OzE" node="1fKFQTSrPcB" resolve="UBnd" />
</node>
<node concept="a7P8L" id="1fKFQTSrPcS" role="3AunhB">
<ref role="a7OzE" node="1fKFQTSrPc_" resolve="Type" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1nLNMY" id="6EY0p2z7DTR" role="1nK1Vg">
<property role="TrG5h" value="converts_lowerBoundType_boundedVar" />
<node concept="3clFbS" id="6EY0p2z7DTS" role="1nLNMH">
@ -24692,8 +24770,39 @@
</node>
</node>
<node concept="1nLNMY" id="12QmIo_7sf_" role="1nK1Vg">
<property role="TrG5h" value="recove_captureOf" />
<property role="TrG5h" value="recover_captureOf_typeVariable" />
<node concept="3clFbS" id="12QmIo_7sfA" role="1nLNMH">
<node concept="3SKdUt" id="1fKFQTSptdM" role="3cqZAp">
<node concept="1PaTwC" id="1fKFQTSptdN" role="3ndbpf">
<node concept="3oM_SD" id="1fKFQTSptdP" role="1PaTwD">
<property role="3oM_SC" value="captured" />
</node>
<node concept="3oM_SD" id="1fKFQTSptey" role="1PaTwD">
<property role="3oM_SC" value="bound" />
</node>
<node concept="3oM_SD" id="1fKFQTSpte_" role="1PaTwD">
<property role="3oM_SC" value="can" />
</node>
<node concept="3oM_SD" id="1fKFQTSpteD" role="1PaTwD">
<property role="3oM_SC" value="be" />
</node>
<node concept="3oM_SD" id="1fKFQTSpteI" role="1PaTwD">
<property role="3oM_SC" value="more" />
</node>
<node concept="3oM_SD" id="1fKFQTSpteO" role="1PaTwD">
<property role="3oM_SC" value="restrictive" />
</node>
<node concept="3oM_SD" id="1fKFQTSpteV" role="1PaTwD">
<property role="3oM_SC" value="than" />
</node>
<node concept="3oM_SD" id="1fKFQTSptf3" role="1PaTwD">
<property role="3oM_SC" value="original" />
</node>
<node concept="3oM_SD" id="1fKFQTSptfc" role="1PaTwD">
<property role="3oM_SC" value="bound" />
</node>
</node>
</node>
<node concept="1nLNNL" id="12QmIo_7sfB" role="3cqZAp">
<node concept="1nLNMm" id="12QmIo_7sfC" role="1nLNNK">
<node concept="0eUR_" id="7lt0LtPBjUc" role="0UC6o">
@ -24705,11 +24814,14 @@
</node>
<node concept="3NuqgR" id="5f6wxQ30Unu" role="0eVf_">
<node concept="aZer4" id="5upUcEtdY0_" role="3XD1gS">
<property role="TrG5h" value="Origin" />
<property role="TrG5h" value="OriginDecl" />
</node>
<node concept="aZer4" id="5upUcEtdUWI" role="3XD1gS">
<property role="TrG5h" value="Type" />
</node>
<node concept="aZer4" id="1fKFQTSpsY3" role="3XD1gS">
<property role="TrG5h" value="UBnd" />
</node>
</node>
</node>
<node concept="3Aq93q" id="5upUcEtdUWy" role="1nLNMb">
@ -24726,8 +24838,24 @@
<node concept="nsMwS" id="JOGAOsVt9_" role="ns1xD">
<ref role="nsMwP" node="JOGAOsVt2l" resolve="origin" />
<node concept="1nq8_$" id="49obaclfiiM" role="nsMwV">
<node concept="a7P8L" id="5upUcEtdY0T" role="1nq8_t">
<ref role="a7OzE" node="5upUcEtdY0_" resolve="Origin" />
<node concept="ns1u0" id="1fKFQTSpt4f" role="1nq8_t">
<ref role="ns1xF" node="JOGAOsVt2f" resolve="typeVariableType" />
<node concept="nsMwS" id="1fKFQTSpt61" role="ns1xD">
<ref role="nsMwP" node="JOGAOsVt2h" resolve="declaration" />
<node concept="1nq8_$" id="1fKFQTSpt8j" role="nsMwV">
<node concept="a7P8L" id="1fKFQTSpt8h" role="1nq8_t">
<ref role="a7OzE" node="5upUcEtdY0_" resolve="OriginDecl" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="nsMwS" id="1fKFQTSpsXW" role="ns1xD">
<ref role="nsMwP" node="JOGAOsVt2m" resolve="ubound" />
<node concept="1nq8_$" id="1fKFQTSpt8s" role="nsMwV">
<node concept="a7P8L" id="1fKFQTSpt8q" role="1nq8_t">
<ref role="a7OzE" node="1fKFQTSpsY3" resolve="UBnd" />
</node>
</node>
</node>
@ -24748,8 +24876,255 @@
<node concept="a7P8L" id="5upUcEtdY2$" role="3AunhB">
<ref role="a7OzE" node="5upUcEtdUWC" resolve="Node" />
</node>
<node concept="a7P8L" id="5upUcEtdY2G" role="3AunhB">
<ref role="a7OzE" node="5upUcEtdY0_" resolve="Origin" />
<node concept="ns1u0" id="1fKFQTSpt8z" role="3AunhB">
<ref role="ns1xF" node="JOGAOsVt2f" resolve="typeVariableType" />
<node concept="nsMwS" id="1fKFQTSptaI" role="ns1xD">
<ref role="nsMwP" node="JOGAOsVt2h" resolve="declaration" />
<node concept="1nq8_$" id="1fKFQTSptaY" role="nsMwV">
<node concept="a7P8L" id="1fKFQTSptaW" role="1nq8_t">
<ref role="a7OzE" node="5upUcEtdY0_" resolve="OriginDecl" />
</node>
</node>
</node>
<node concept="nsMwS" id="1fKFQTSptb5" role="ns1xD">
<ref role="nsMwP" node="39Sam6ZibY7" resolve="parameter" />
<node concept="1nq8_$" id="1fKFQTSptcU" role="nsMwV">
<node concept="a7P8L" id="1fKFQTSptcS" role="1nq8_t">
<ref role="a7OzE" node="1fKFQTSpsY3" resolve="UBnd" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1nLNMY" id="1fKFQTSps_o" role="1nK1Vg">
<property role="TrG5h" value="recover_captureOf_wildcard" />
<node concept="3clFbS" id="1fKFQTSps_p" role="1nLNMH">
<node concept="3SKdUt" id="1fKFQTSptfT" role="3cqZAp">
<node concept="1PaTwC" id="1fKFQTSptjV" role="3ndbpf">
<node concept="3oM_SD" id="1fKFQTSptgA" role="1PaTwD">
<property role="3oM_SC" value="Origin" />
</node>
<node concept="3oM_SD" id="1fKFQTSptgC" role="1PaTwD">
<property role="3oM_SC" value="is" />
</node>
<node concept="3oM_SD" id="1fKFQTSptgF" role="1PaTwD">
<property role="3oM_SC" value="(possibly" />
</node>
<node concept="3oM_SD" id="1fKFQTSptgJ" role="1PaTwD">
<property role="3oM_SC" value="bounded)" />
</node>
<node concept="3oM_SD" id="1fKFQTSptk4" role="1PaTwD">
<property role="3oM_SC" value="wildcard" />
</node>
</node>
</node>
<node concept="3SKdUt" id="1fKFQTSptl5" role="3cqZAp">
<node concept="1PaTwC" id="1fKFQTSptmJ" role="3ndbpf">
<node concept="3oM_SD" id="1fKFQTSptmb" role="1PaTwD">
<property role="3oM_SC" value="only" />
</node>
<node concept="3oM_SD" id="1fKFQTSptmd" role="1PaTwD">
<property role="3oM_SC" value="upper" />
</node>
<node concept="3oM_SD" id="1fKFQTSptmg" role="1PaTwD">
<property role="3oM_SC" value="bounds" />
</node>
<node concept="3oM_SD" id="1fKFQTSptmk" role="1PaTwD">
<property role="3oM_SC" value="matter" />
</node>
<node concept="3oM_SD" id="1fKFQTSptmp" role="1PaTwD">
<property role="3oM_SC" value="for" />
</node>
<node concept="3oM_SD" id="1fKFQTSptmv" role="1PaTwD">
<property role="3oM_SC" value="conversions" />
</node>
<node concept="3oM_SD" id="1fKFQTSptmU" role="1PaTwD">
<property role="3oM_SC" value="later" />
</node>
</node>
<node concept="1PaTwC" id="1fKFQTSptnb" role="3ndbpf">
<node concept="3oM_SD" id="1fKFQTSptna" role="1PaTwD">
<property role="3oM_SC" value="so" />
</node>
<node concept="3oM_SD" id="1fKFQTSptnm" role="1PaTwD">
<property role="3oM_SC" value="ignore" />
</node>
<node concept="3oM_SD" id="1fKFQTSptnp" role="1PaTwD">
<property role="3oM_SC" value="lower" />
</node>
<node concept="3oM_SD" id="1fKFQTSptnt" role="1PaTwD">
<property role="3oM_SC" value="bounds" />
</node>
<node concept="3oM_SD" id="1fKFQTSptny" role="1PaTwD">
<property role="3oM_SC" value="and" />
</node>
<node concept="3oM_SD" id="1fKFQTSptnC" role="1PaTwD">
<property role="3oM_SC" value="produce" />
</node>
<node concept="3oM_SD" id="1fKFQTSptnJ" role="1PaTwD">
<property role="3oM_SC" value="upper" />
</node>
<node concept="3oM_SD" id="1fKFQTSptnR" role="1PaTwD">
<property role="3oM_SC" value="bound" />
</node>
<node concept="3oM_SD" id="1fKFQTSpto0" role="1PaTwD">
<property role="3oM_SC" value="anyway" />
</node>
</node>
</node>
<node concept="1nLNNL" id="1fKFQTSps_q" role="3cqZAp">
<node concept="1nLNMm" id="1fKFQTSps_r" role="1nLNNK">
<node concept="0eUR_" id="1fKFQTSps_s" role="0UC6o">
<node concept="3NuqgR" id="1fKFQTSps_t" role="0eVf_">
<node concept="aZer4" id="1fKFQTSps_u" role="3XD1gS">
<property role="TrG5h" value="Node" />
</node>
<node concept="3Tqbb2" id="1fKFQTSps_v" role="3vLBG7" />
</node>
<node concept="3NuqgR" id="1fKFQTSps_w" role="0eVf_">
<node concept="aZer4" id="1fKFQTSps_x" role="3XD1gS">
<property role="TrG5h" value="Origin" />
</node>
<node concept="aZer4" id="1fKFQTSps_y" role="3XD1gS">
<property role="TrG5h" value="Type" />
</node>
<node concept="aZer4" id="1fKFQTSpt0c" role="3XD1gS">
<property role="TrG5h" value="UBnd" />
</node>
</node>
</node>
<node concept="3Aq93q" id="1fKFQTSps_z" role="1nLNMb">
<node concept="3I6sU6" id="1fKFQTSps_$" role="3Ip0Jz">
<node concept="3I6s7M" id="1fKFQTSps__" role="3I6sU7">
<node concept="3Aqt3T" id="1fKFQTSps_A" role="3I6s78">
<ref role="3AqCNq" node="6Qzc0KyJGJT" resolve="recover" />
<node concept="a7P8L" id="1fKFQTSps_B" role="3AunhB">
<ref role="a7OzE" node="1fKFQTSps_u" resolve="Node" />
</node>
<node concept="1HFMs5" id="1fKFQTSps_C" role="3AunhB">
<node concept="ns1u0" id="1fKFQTSps_D" role="1uarlW">
<ref role="ns1xF" node="JOGAOsVt2j" resolve="captureOfType" />
<node concept="nsMwS" id="1fKFQTSps_E" role="ns1xD">
<ref role="nsMwP" node="JOGAOsVt2l" resolve="origin" />
<node concept="1nq8_$" id="1fKFQTSps_F" role="nsMwV">
<node concept="a7P8L" id="1fKFQTSps_G" role="1nq8_t">
<ref role="a7OzE" node="1fKFQTSps_x" resolve="Origin" />
</node>
</node>
</node>
<node concept="nsMwS" id="1fKFQTSpsTm" role="ns1xD">
<ref role="nsMwP" node="JOGAOsVt2m" resolve="ubound" />
<node concept="1nq8_$" id="1fKFQTSpsTP" role="nsMwV">
<node concept="a7P8L" id="1fKFQTSpsTN" role="1nq8_t">
<ref role="a7OzE" node="1fKFQTSpt0c" resolve="UBnd" />
</node>
</node>
</node>
</node>
<node concept="a7P8L" id="1fKFQTSps_H" role="1uarlU">
<ref role="a7OzE" node="1fKFQTSps_y" resolve="Type" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aq9E8" id="1fKFQTSps_I" role="1nLNMd">
<node concept="3I6sU6" id="1fKFQTSps_J" role="3Ip0Jz">
<node concept="3I6s7M" id="1fKFQTSps_K" role="3I6sU7">
<node concept="3Aqt3T" id="1fKFQTSps_L" role="3I6s78">
<ref role="3AqCNq" node="6Qzc0KyJGJT" resolve="recover" />
<node concept="a7P8L" id="1fKFQTSps_M" role="3AunhB">
<ref role="a7OzE" node="1fKFQTSps_u" resolve="Node" />
</node>
<node concept="ns1u0" id="1fKFQTSpsTW" role="3AunhB">
<ref role="ns1xF" node="JOGAOsVt2u" resolve="upperBoundType" />
<node concept="nsMwS" id="1fKFQTSpsW3" role="ns1xD">
<ref role="nsMwP" node="39Sam6YgyvP" resolve="parameter" />
<node concept="1nq8_$" id="1fKFQTSpsXP" role="nsMwV">
<node concept="a7P8L" id="1fKFQTSpsXN" role="1nq8_t">
<ref role="a7OzE" node="1fKFQTSpt0c" resolve="UBnd" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1nLNMY" id="1fKFQTSptp5" role="1nK1Vg">
<property role="TrG5h" value="recover_captureOf_default" />
<node concept="3clFbS" id="1fKFQTSptp6" role="1nLNMH">
<node concept="1nLNNL" id="1fKFQTSptpx" role="3cqZAp">
<node concept="1nLNMm" id="1fKFQTSptpy" role="1nLNNK">
<node concept="0eUR_" id="1fKFQTSptpz" role="0UC6o">
<node concept="3NuqgR" id="1fKFQTSptp$" role="0eVf_">
<node concept="aZer4" id="1fKFQTSptp_" role="3XD1gS">
<property role="TrG5h" value="Node" />
</node>
<node concept="3Tqbb2" id="1fKFQTSptpA" role="3vLBG7" />
</node>
<node concept="3NuqgR" id="1fKFQTSptpB" role="0eVf_">
<node concept="aZer4" id="1fKFQTSptpC" role="3XD1gS">
<property role="TrG5h" value="Origin" />
</node>
<node concept="aZer4" id="1fKFQTSptpD" role="3XD1gS">
<property role="TrG5h" value="Type" />
</node>
<node concept="aZer4" id="1fKFQTSptpE" role="3XD1gS">
<property role="TrG5h" value="UBnd" />
</node>
</node>
</node>
<node concept="3Aq93q" id="1fKFQTSptpF" role="1nLNMb">
<node concept="3I6sU6" id="1fKFQTSptpG" role="3Ip0Jz">
<node concept="3I6s7M" id="1fKFQTSptpH" role="3I6sU7">
<node concept="3Aqt3T" id="1fKFQTSptpI" role="3I6s78">
<ref role="3AqCNq" node="6Qzc0KyJGJT" resolve="recover" />
<node concept="a7P8L" id="1fKFQTSptpJ" role="3AunhB">
<ref role="a7OzE" node="1fKFQTSptp_" resolve="Node" />
</node>
<node concept="1HFMs5" id="1fKFQTSptpK" role="3AunhB">
<node concept="ns1u0" id="1fKFQTSptpL" role="1uarlW">
<ref role="ns1xF" node="JOGAOsVt2j" resolve="captureOfType" />
<node concept="nsMwS" id="1fKFQTSptpM" role="ns1xD">
<ref role="nsMwP" node="JOGAOsVt2l" resolve="origin" />
<node concept="1nq8_$" id="1fKFQTSptpN" role="nsMwV">
<node concept="a7P8L" id="1fKFQTSptpO" role="1nq8_t">
<ref role="a7OzE" node="1fKFQTSptpC" resolve="Origin" />
</node>
</node>
</node>
</node>
<node concept="a7P8L" id="1fKFQTSptpS" role="1uarlU">
<ref role="a7OzE" node="1fKFQTSptpD" resolve="Type" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aq9E8" id="1fKFQTSptpT" role="1nLNMd">
<node concept="3I6sU6" id="1fKFQTSptpU" role="3Ip0Jz">
<node concept="3I6s7M" id="1fKFQTSptpV" role="3I6sU7">
<node concept="3Aqt3T" id="1fKFQTSptpW" role="3I6s78">
<ref role="3AqCNq" node="6Qzc0KyJGJT" resolve="recover" />
<node concept="a7P8L" id="1fKFQTSptpX" role="3AunhB">
<ref role="a7OzE" node="1fKFQTSptp_" resolve="Node" />
</node>
<node concept="a7P8L" id="1fKFQTSptLE" role="3AunhB">
<ref role="a7OzE" node="1fKFQTSptpC" resolve="Origin" />
</node>
</node>
</node>
@ -33226,6 +33601,78 @@
</node>
</node>
</node>
<node concept="3clFbH" id="5vMXiMGQ24r" role="3cqZAp" />
<node concept="3SKdUt" id="5vMXiMGQ22Y" role="3cqZAp">
<node concept="1PaTwC" id="5vMXiMGQ22Z" role="3ndbpf">
<node concept="3oM_SD" id="5vMXiMGQ231" role="1PaTwD">
<property role="3oM_SC" value="expand" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ23D" role="1PaTwD">
<property role="3oM_SC" value="with" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ23G" role="1PaTwD">
<property role="3oM_SC" value="fallback" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ24j" role="1PaTwD">
<property role="3oM_SC" value="type" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ23P" role="1PaTwD">
<property role="3oM_SC" value="to" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ23V" role="1PaTwD">
<property role="3oM_SC" value="typecheck" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ242" role="1PaTwD">
<property role="3oM_SC" value="more" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ339" role="1PaTwD">
<property role="3oM_SC" value="and" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ33i" role="1PaTwD">
<property role="3oM_SC" value="then" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ340" role="1PaTwD">
<property role="3oM_SC" value="provide" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ34c" role="1PaTwD">
<property role="3oM_SC" value="feedback" />
</node>
<node concept="3oM_SD" id="5vMXiMGQ33s" role="1PaTwD">
<property role="3oM_SC" value="" />
</node>
</node>
</node>
<node concept="3Aqczg" id="5vMXiMGQ25Q" role="3cqZAp">
<node concept="3A8Hvi" id="5vMXiMGQ25R" role="3Aqpz8">
<node concept="aZ4PW" id="5vMXiMGQ25S" role="3A8wtg">
<node concept="3txIi4" id="5vMXiMGQ25T" role="aZ4eD" />
</node>
<node concept="ns1u0" id="5vMXiMGQ25U" role="3A8w4Q">
<ref role="ns1xF" node="JOGAOsVt2a" resolve="classifierType" />
<node concept="nsMwS" id="5vMXiMGQ25V" role="ns1xD">
<ref role="nsMwP" node="JOGAOsVt2c" resolve="classifier" />
<node concept="2OqwBi" id="5vMXiMGQ2UQ" role="nsMwV">
<node concept="liA8E" id="5vMXiMGQ31U" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getReference()" resolve="getReference" />
</node>
<node concept="2JrnkZ" id="5vMXiMGQ2UV" role="2Oq$k0">
<node concept="3tDTZT" id="5vMXiMGQ2bc" role="2JrQYb">
<ref role="3tDTNw" node="7XRk2O3zfpB" resolve="cls1" />
</node>
</node>
</node>
</node>
<node concept="nsMwS" id="5vMXiMGSqLu" role="ns1xD">
<ref role="nsMwP" node="JOGAOsVt2e" resolve="parameter" />
<node concept="1nq8_$" id="5vMXiMGSqM3" role="nsMwV">
<node concept="a7P8L" id="5vMXiMGSqM1" role="1nq8_t">
<ref role="a7OzE" node="7XRk2O3zf_N" resolve="DefaultParams" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="7XRk2O3zfpt" role="3cqZAp" />
<node concept="3cpWs8" id="7XRk2O3zfAb" role="3cqZAp">
<node concept="3cpWsn" id="7XRk2O3zfAf" role="3cpWs9">
@ -33266,7 +33713,6 @@
</node>
</node>
</node>
<node concept="3clFbH" id="7XRk2O3zfld" role="3cqZAp" />
</node>
<node concept="3y3z36" id="7XRk2O3zfrX" role="3clFbw">
<node concept="10Nm6u" id="7XRk2O3zfrZ" role="3uHU7w" />
@ -33283,7 +33729,6 @@
</node>
</node>
</node>
<node concept="3clFbH" id="4WwvXRZ9QvH" role="3cqZAp" />
</node>
</node>
</node>

View File

@ -6,13 +6,16 @@
<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 />
<imports>
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
</imports>
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<concept id="1465982738277781862" name="jetbrains.mps.baseLanguage.structure.PlaceholderMember" flags="ng" index="2tJIrI" />
<concept id="2820489544401957797" name="jetbrains.mps.baseLanguage.structure.DefaultClassCreator" flags="nn" index="HV5vD">
<reference id="2820489544401957798" name="classifier" index="HV5vE" />
<child id="2820489544402271667" name="typeParameter" index="HU9BZ" />
</concept>
<concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
<child id="1197027771414" name="operand" index="2Oq$k0" />
@ -1125,7 +1128,7 @@
<node concept="3Tm6S6" id="5Pqb1qkLdOv" role="1B3o_S" />
<node concept="16euLQ" id="5Pqb1qkLdOw" role="16eVyc">
<property role="TrG5h" value="T1" />
<node concept="3uibUv" id="5Pqb1qkLdOx" role="3ztrMU">
<node concept="3uibUv" id="1Swggvmnuob" role="3ztrMU">
<ref role="3uigEE" node="5Pqb1qkLdO4" resolve="Sample_bad3.A" />
</node>
</node>
@ -1300,7 +1303,7 @@
</node>
</node>
</node>
<node concept="liA8E" id="5Pqb1qkLdQX" role="2OqNvi">
<node concept="liA8E" id="1SwggvmnoY5" role="2OqNvi">
<ref role="37wK5l" node="5Pqb1qkLdO5" resolve="a" />
</node>
</node>
@ -1331,6 +1334,160 @@
</node>
</node>
</node>
<node concept="3clFbH" id="1Swggvmnq98" role="3cqZAp" />
<node concept="3clFbF" id="1Swggvmnr10" role="3cqZAp">
<node concept="2OqwBi" id="1SwggvmnrsP" role="3clFbG">
<node concept="2OqwBi" id="1Swggvmnr9f" role="2Oq$k0">
<node concept="37vLTw" id="1Swggvmnr0Y" role="2Oq$k0">
<ref role="3cqZAo" node="5Pqb1qkLdRN" resolve="s" />
</node>
<node concept="2OwXpG" id="1SwggvmnrkM" role="2OqNvi">
<ref role="2Oxat5" node="5Pqb1qkLdOm" resolve="t" />
</node>
</node>
<node concept="liA8E" id="1SwggvmnrW2" role="2OqNvi">
<ref role="37wK5l" node="5Pqb1qkLdO5" resolve="a" />
</node>
</node>
</node>
<node concept="3clFbF" id="1Swggvmnt9T" role="3cqZAp">
<node concept="2OqwBi" id="1SwggvmntyJ" role="3clFbG">
<node concept="2OqwBi" id="1Swggvmntio" role="2Oq$k0">
<node concept="37vLTw" id="1Swggvmnt9R" role="2Oq$k0">
<ref role="3cqZAo" node="5Pqb1qkLdRN" resolve="s" />
</node>
<node concept="2OwXpG" id="1Swggvmntqm" role="2OqNvi">
<ref role="2Oxat5" node="5Pqb1qkLdOm" resolve="t" />
</node>
</node>
<node concept="liA8E" id="1Swggvmnub2" role="2OqNvi">
<ref role="37wK5l" node="5Pqb1qkLdOd" resolve="b" />
<node concept="1U20sH" id="1SwggvmnuU3" role="lGtFl">
<property role="1U20sK" value="error" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="1Swggvms25I" role="3cqZAp" />
<node concept="3SKdUt" id="5vMXiMGUFdU" role="3cqZAp">
<node concept="1PaTwC" id="5vMXiMGUFdV" role="3ndbpf">
<node concept="3oM_SD" id="5vMXiMGUFdX" role="1PaTwD">
<property role="3oM_SC" value="check" />
</node>
<node concept="3oM_SD" id="5vMXiMGUFMI" role="1PaTwD">
<property role="3oM_SC" value="that" />
</node>
<node concept="3oM_SD" id="5vMXiMGUFQg" role="1PaTwD">
<property role="3oM_SC" value="incorrectly" />
</node>
<node concept="3oM_SD" id="5vMXiMGUG0D" role="1PaTwD">
<property role="3oM_SC" value="instantiated" />
</node>
<node concept="3oM_SD" id="5vMXiMGUG7G" role="1PaTwD">
<property role="3oM_SC" value="variables" />
</node>
<node concept="3oM_SD" id="5vMXiMGUG7M" role="1PaTwD">
<property role="3oM_SC" value="can" />
</node>
<node concept="3oM_SD" id="5vMXiMGUG7T" role="1PaTwD">
<property role="3oM_SC" value="still" />
</node>
<node concept="3oM_SD" id="5vMXiMGUGbo" role="1PaTwD">
<property role="3oM_SC" value="be" />
</node>
<node concept="3oM_SD" id="5vMXiMGUGbx" role="1PaTwD">
<property role="3oM_SC" value="used" />
</node>
<node concept="3oM_SD" id="5vMXiMGUG$G" role="1PaTwD">
<property role="3oM_SC" value="further" />
</node>
<node concept="3oM_SD" id="5vMXiMGUGCm" role="1PaTwD">
<property role="3oM_SC" value="and" />
</node>
<node concept="3oM_SD" id="5vMXiMGUGCy" role="1PaTwD">
<property role="3oM_SC" value="typechecked" />
</node>
<node concept="3oM_SD" id="5vMXiMGUGXx" role="1PaTwD">
<property role="3oM_SC" value="in" />
</node>
<node concept="3oM_SD" id="5vMXiMGUGXJ" role="1PaTwD">
<property role="3oM_SC" value="some" />
</node>
<node concept="3oM_SD" id="5vMXiMGUH1t" role="1PaTwD">
<property role="3oM_SC" value="fallback" />
</node>
<node concept="3oM_SD" id="5vMXiMGUHnQ" role="1PaTwD">
<property role="3oM_SC" value="way" />
</node>
</node>
</node>
<node concept="3cpWs8" id="1Swggvms2It" role="3cqZAp">
<node concept="3cpWsn" id="1Swggvms2Iu" role="3cpWs9">
<property role="TrG5h" value="bla" />
<node concept="3uibUv" id="1Swggvms35I" role="1tU5fm">
<ref role="3uigEE" node="5Pqb1qkLdOl" resolve="Sample_bad3.J" />
<node concept="3uibUv" id="1Swggvms5Yd" role="11_B2D">
<ref role="3uigEE" node="5Pqb1qkLdO4" resolve="Sample_bad3.A" />
</node>
<node concept="3uibUv" id="1Swggvms6gI" role="11_B2D">
<ref role="3uigEE" node="5Pqb1qkLdO4" resolve="Sample_bad3.A" />
</node>
<node concept="1U20sH" id="5vMXiMGUHrC" role="lGtFl">
<property role="1U20sK" value="error" />
</node>
</node>
<node concept="2ShNRf" id="1Swggvms8dc" role="33vP2m">
<node concept="HV5vD" id="1Swggvms9qI" role="2ShVmc">
<ref role="HV5vE" node="5Pqb1qkLdOl" resolve="Sample_bad3.J" />
<node concept="3uibUv" id="5vMXiMGSgyY" role="HU9BZ">
<ref role="3uigEE" node="5Pqb1qkLdO4" resolve="Sample_bad3.A" />
</node>
<node concept="3uibUv" id="5vMXiMGU$cJ" role="HU9BZ">
<ref role="3uigEE" node="5Pqb1qkLdO4" resolve="Sample_bad3.A" />
</node>
<node concept="3uibUv" id="5vMXiMGU$qm" role="HU9BZ">
<ref role="3uigEE" node="5Pqb1qkLdO4" resolve="Sample_bad3.A" />
</node>
<node concept="1U20sH" id="5vMXiMGUHEE" role="lGtFl">
<property role="1U20sK" value="error" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="5vMXiMGUANa" role="3cqZAp">
<node concept="2OqwBi" id="2HYHa0WUExJ" role="3clFbG">
<node concept="liA8E" id="2HYHa0WUEE8" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
</node>
<node concept="37vLTw" id="1Swggvmsctu" role="2Oq$k0">
<ref role="3cqZAo" node="1Swggvms2Iu" resolve="bla" />
</node>
</node>
</node>
<node concept="3clFbF" id="1Swggvmsf4M" role="3cqZAp">
<node concept="2OqwBi" id="5vMXiMGSepi" role="3clFbG">
<node concept="37vLTw" id="1Swggvmsf4K" role="2Oq$k0">
<ref role="3cqZAo" node="1Swggvms2Iu" resolve="bla" />
</node>
<node concept="liA8E" id="5vMXiMGSeVv" role="2OqNvi">
<ref role="37wK5l" node="5Pqb1qkLdOo" resolve="h" />
</node>
</node>
</node>
<node concept="3clFbF" id="5vMXiMGU$Cc" role="3cqZAp">
<node concept="2OqwBi" id="5vMXiMGU$Cd" role="3clFbG">
<node concept="liA8E" id="5vMXiMGU$Ch" role="2OqNvi">
<ref role="37wK5l" node="5Pqb1qkLdO5" resolve="a" />
<node concept="1U20sH" id="5vMXiMGUH_2" role="lGtFl">
<property role="1U20sK" value="error" />
</node>
</node>
<node concept="37vLTw" id="5vMXiMGU_Ab" role="2Oq$k0">
<ref role="3cqZAo" node="1Swggvms2Iu" resolve="bla" />
</node>
</node>
</node>
</node>
<node concept="3Tm1VV" id="5Pqb1qkLdRG" role="1B3o_S" />
<node concept="16euLQ" id="5Pqb1qkLdRH" role="16eVyc">