diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2017-07-08 21:34:52 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2017-07-08 21:34:52 -0700 |
commit | 9e32e4736dc12479e3855e8d29ba7ecb6ac50ff6 (patch) | |
tree | 0fb382ddb830843b0993da27ff24900c59f18b60 /html/031merge.cc.html | |
parent | 0f0be736fbe118612ad0b8f2bd84c2e7f4c35ade (diff) | |
download | mu-9e32e4736dc12479e3855e8d29ba7ecb6ac50ff6.tar.gz |
3963
Narrow the scope of implicit type conversions. Now only numbers can be freely converted to from other scalars (booleans, characters). We want in particular to make this an error: x:character <- new [abc]
Diffstat (limited to 'html/031merge.cc.html')
-rw-r--r-- | html/031merge.cc.html | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/html/031merge.cc.html b/html/031merge.cc.html index f78f61c5..f6e38b17 100644 --- a/html/031merge.cc.html +++ b/html/031merge.cc.html @@ -223,12 +223,12 @@ if ('onhashchange' in window) { <span id="L158" class="LineNr">158 </span> <span class="Conceal">¦</span> <span class="Normal">switch</span> <span class="Delimiter">(</span>container_info<span class="Delimiter">.</span>kind<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L159" class="LineNr">159 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">case</span> <a href='010vm.cc.html#L173'>CONTAINER</a>: <span class="Delimiter">{</span> <span id="L160" class="LineNr">160 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment">// degenerate case: merge with the same type always succeeds</span> -<span id="L161" class="LineNr">161 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span>state<span class="Delimiter">.</span>data<span class="Delimiter">.</span>top<span class="Delimiter">().</span>container_element_index == <span class="Constant">0</span> && <a href='021check_instruction.cc.html#L100'>types_coercible</a><span class="Delimiter">(</span>container<span class="Delimiter">,</span> inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span>ingredient_index<span class="Delimiter">)))</span> +<span id="L161" class="LineNr">161 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span>state<span class="Delimiter">.</span>data<span class="Delimiter">.</span>top<span class="Delimiter">().</span>container_element_index == <span class="Constant">0</span> && <a href='021check_instruction.cc.html#L108'>types_coercible</a><span class="Delimiter">(</span>container<span class="Delimiter">,</span> inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span>ingredient_index<span class="Delimiter">)))</span> <span id="L162" class="LineNr">162 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Identifier">return</span><span class="Delimiter">;</span> <span id="L163" class="LineNr">163 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">const</span> reagent& expected_ingredient = <a href='030container.cc.html#L429'>element_type</a><span class="Delimiter">(</span>container<span class="Delimiter">.</span>type<span class="Delimiter">,</span> state<span class="Delimiter">.</span>data<span class="Delimiter">.</span>top<span class="Delimiter">().</span>container_element_index<span class="Delimiter">);</span> <span id="L164" class="LineNr">164 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='003trace.cc.html#L161'>trace</a><span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">"transform"</span><span class="Delimiter">)</span> << <span class="Constant">"checking container "</span> << <a href='028call_return.cc.html#L158'>to_string</a><span class="Delimiter">(</span>container<span class="Delimiter">)</span> << <span class="Constant">" || "</span> << <a href='028call_return.cc.html#L158'>to_string</a><span class="Delimiter">(</span>expected_ingredient<span class="Delimiter">)</span> << <span class="Constant">" vs ingredient "</span> << ingredient_index << <a href='003trace.cc.html#L197'>end</a><span class="Delimiter">();</span> <span id="L165" class="LineNr">165 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment">// if the current element is the ingredient we expect, move on to the next element/ingredient</span> -<span id="L166" class="LineNr">166 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='021check_instruction.cc.html#L100'>types_coercible</a><span class="Delimiter">(</span>expected_ingredient<span class="Delimiter">,</span> ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span>ingredient_index<span class="Delimiter">)))</span> <span class="Delimiter">{</span> +<span id="L166" class="LineNr">166 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='021check_instruction.cc.html#L108'>types_coercible</a><span class="Delimiter">(</span>expected_ingredient<span class="Delimiter">,</span> ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span>ingredient_index<span class="Delimiter">)))</span> <span class="Delimiter">{</span> <span id="L167" class="LineNr">167 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> ++ingredient_index<span class="Delimiter">;</span> <span id="L168" class="LineNr">168 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> ++state<span class="Delimiter">.</span>data<span class="Delimiter">.</span>top<span class="Delimiter">().</span>container_element_index<span class="Delimiter">;</span> <span id="L169" class="LineNr">169 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">while</span> <span class="Delimiter">(</span>state<span class="Delimiter">.</span>data<span class="Delimiter">.</span>top<span class="Delimiter">().</span>container_element_index >= <a href='001help.cc.html#L141'>SIZE</a><span class="Delimiter">(</span>get<span class="Delimiter">(</span>Type<span class="Delimiter">,</span> get_base_type<span class="Delimiter">(</span>state<span class="Delimiter">.</span>data<span class="Delimiter">.</span>top<span class="Delimiter">().</span>container<span class="Delimiter">.</span>type<span class="Delimiter">)-></span>value<span class="Delimiter">).</span>elements<span class="Delimiter">))</span> <span class="Delimiter">{</span> |