diff options
Diffstat (limited to 'html/021check_instruction.cc.html')
-rw-r--r-- | html/021check_instruction.cc.html | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/html/021check_instruction.cc.html b/html/021check_instruction.cc.html index 801c60f6..111355b4 100644 --- a/html/021check_instruction.cc.html +++ b/html/021check_instruction.cc.html @@ -80,51 +80,51 @@ Transform<span class="Delimiter">.</span>push_back<span class="Delimiter">(</spa <span class="Delimiter">:(scenario copy_checks_reagent_count)</span> <span class="Special">% Hide_errors = true;</span> def main [ - <span class="Constant">1</span>:number<span class="Special"> <- </span>copy <span class="Constant">34</span><span class="Delimiter">,</span> <span class="Constant">35</span> + <span class="Constant">1</span>:num<span class="Special"> <- </span>copy <span class="Constant">34</span><span class="Delimiter">,</span> <span class="Constant">35</span> ] -<span class="traceContains">+error: main: ingredients and products should match in '1:number <- copy 34, 35'</span> +<span class="traceContains">+error: main: ingredients and products should match in '1:num <- copy 34, 35'</span> <span class="Delimiter">:(scenario write_scalar_to_array_disallowed)</span> <span class="Special">% Hide_errors = true;</span> def main [ - <span class="Constant">1</span>:array:number<span class="Special"> <- </span>copy <span class="Constant">34</span> + <span class="Constant">1</span>:array:num<span class="Special"> <- </span>copy <span class="Constant">34</span> ] -<span class="traceContains">+error: main: can't copy '34' to '1:array:number'; types don't match</span> +<span class="traceContains">+error: main: can't copy '34' to '1:array:num'; types don't match</span> <span class="Delimiter">:(scenario write_scalar_to_array_disallowed_2)</span> <span class="Special">% Hide_errors = true;</span> def main [ - <span class="Constant">1</span>:number<span class="Delimiter">,</span> <span class="Constant">2</span>:array:number<span class="Special"> <- </span>copy <span class="Constant">34</span><span class="Delimiter">,</span> <span class="Constant">35</span> + <span class="Constant">1</span>:num<span class="Delimiter">,</span> <span class="Constant">2</span>:array:num<span class="Special"> <- </span>copy <span class="Constant">34</span><span class="Delimiter">,</span> <span class="Constant">35</span> ] -<span class="traceContains">+error: main: can't copy '35' to '2:array:number'; types don't match</span> +<span class="traceContains">+error: main: can't copy '35' to '2:array:num'; types don't match</span> <span class="Delimiter">:(scenario write_scalar_to_address_disallowed)</span> <span class="Special">% Hide_errors = true;</span> def main [ - <span class="Constant">1</span>:address:number<span class="Special"> <- </span>copy <span class="Constant">34</span> + <span class="Constant">1</span>:address:num<span class="Special"> <- </span>copy <span class="Constant">34</span> ] -<span class="traceContains">+error: main: can't copy '34' to '1:address:number'; types don't match</span> +<span class="traceContains">+error: main: can't copy '34' to '1:address:num'; types don't match</span> <span class="Delimiter">:(scenario write_address_to_number_allowed)</span> def main [ - <span class="Constant">1</span>:address:number<span class="Special"> <- </span>copy <span class="Constant">12</span>/unsafe - <span class="Constant">2</span>:number<span class="Special"> <- </span>copy <span class="Constant">1</span>:address:number + <span class="Constant">1</span>:address:num<span class="Special"> <- </span>copy <span class="Constant">12</span>/unsafe + <span class="Constant">2</span>:num<span class="Special"> <- </span>copy <span class="Constant">1</span>:address:num ] <span class="traceContains">+mem: storing 12 in location 2</span> $error: <span class="Constant">0</span> <span class="Delimiter">:(scenario write_boolean_to_number_allowed)</span> def main [ - <span class="Constant">1</span>:boolean<span class="Special"> <- </span>copy <span class="Constant">1</span>/<span class="Constant">true</span> - <span class="Constant">2</span>:number<span class="Special"> <- </span>copy <span class="Constant">1</span>:boolean + <span class="Constant">1</span>:<span class="Normal">bool</span><span class="Special"> <- </span>copy <span class="Constant">1</span>/<span class="Constant">true</span> + <span class="Constant">2</span>:num<span class="Special"> <- </span>copy <span class="Constant">1</span>:<span class="Normal">bool</span> ] <span class="traceContains">+mem: storing 1 in location 2</span> $error: <span class="Constant">0</span> <span class="Delimiter">:(scenario write_number_to_boolean_allowed)</span> def main [ - <span class="Constant">1</span>:number<span class="Special"> <- </span>copy <span class="Constant">34</span> - <span class="Constant">2</span>:boolean<span class="Special"> <- </span>copy <span class="Constant">1</span>:number + <span class="Constant">1</span>:num<span class="Special"> <- </span>copy <span class="Constant">34</span> + <span class="Constant">2</span>:<span class="Normal">bool</span><span class="Special"> <- </span>copy <span class="Constant">1</span>:num ] <span class="traceContains">+mem: storing 34 in location 2</span> $error: <span class="Constant">0</span> @@ -196,6 +196,8 @@ $error: <span class="Constant">0</span> CHECK<span class="Delimiter">(</span>types_strictly_match<span class="Delimiter">(</span>a<span class="Delimiter">,</span> b<span class="Delimiter">));</span> <span class="Delimiter">}</span> +<span class="Comment">//: helpers</span> + <span class="Normal">bool</span> is_unsafe<span class="Delimiter">(</span><span class="Normal">const</span> reagent& r<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span class="Identifier">return</span> has_property<span class="Delimiter">(</span>r<span class="Delimiter">,</span> <span class="Constant">"unsafe"</span><span class="Delimiter">);</span> <span class="Delimiter">}</span> @@ -204,7 +206,6 @@ $error: <span class="Constant">0</span> <span class="Comment">// End Preprocess is_mu_array(reagent r)</span> <span class="Identifier">return</span> is_mu_array<span class="Delimiter">(</span>r<span class="Delimiter">.</span>type<span class="Delimiter">);</span> <span class="Delimiter">}</span> - <span class="Normal">bool</span> is_mu_array<span class="Delimiter">(</span><span class="Normal">const</span> type_tree* type<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span class="Normal">if</span> <span class="Delimiter">(</span>!type<span class="Delimiter">)</span> <span class="Identifier">return</span> <span class="Constant">false</span><span class="Delimiter">;</span> <span class="Normal">if</span> <span class="Delimiter">(</span>is_literal<span class="Delimiter">(</span>type<span class="Delimiter">))</span> <span class="Identifier">return</span> <span class="Constant">false</span><span class="Delimiter">;</span> @@ -217,7 +218,6 @@ $error: <span class="Constant">0</span> <span class="Comment">// End Preprocess is_mu_address(reagent r)</span> <span class="Identifier">return</span> is_mu_address<span class="Delimiter">(</span>r<span class="Delimiter">.</span>type<span class="Delimiter">);</span> <span class="Delimiter">}</span> - <span class="Normal">bool</span> is_mu_address<span class="Delimiter">(</span><span class="Normal">const</span> type_tree* type<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span class="Normal">if</span> <span class="Delimiter">(</span>!type<span class="Delimiter">)</span> <span class="Identifier">return</span> <span class="Constant">false</span><span class="Delimiter">;</span> <span class="Normal">if</span> <span class="Delimiter">(</span>is_literal<span class="Delimiter">(</span>type<span class="Delimiter">))</span> <span class="Identifier">return</span> <span class="Constant">false</span><span class="Delimiter">;</span> @@ -260,7 +260,6 @@ $error: <span class="Constant">0</span> <span class="Normal">bool</span> is_mu_scalar<span class="Delimiter">(</span>reagent<span class="Comment">/*</span><span class="Comment">copy</span><span class="Comment">*/</span> r<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span class="Identifier">return</span> is_mu_scalar<span class="Delimiter">(</span>r<span class="Delimiter">.</span>type<span class="Delimiter">);</span> <span class="Delimiter">}</span> - <span class="Normal">bool</span> is_mu_scalar<span class="Delimiter">(</span><span class="Normal">const</span> type_tree* type<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span class="Normal">if</span> <span class="Delimiter">(</span>!type<span class="Delimiter">)</span> <span class="Identifier">return</span> <span class="Constant">false</span><span class="Delimiter">;</span> <span class="Normal">if</span> <span class="Delimiter">(</span>is_mu_address<span class="Delimiter">(</span>type<span class="Delimiter">))</span> <span class="Identifier">return</span> <span class="Constant">true</span><span class="Delimiter">;</span> |