diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2016-09-17 15:01:51 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2016-09-17 15:01:51 -0700 |
commit | f344b250f6f062a1a1902bf69b23ebf9b565de0e (patch) | |
tree | 199bd32a9aee198d5028b1c21b83d2cf0944b2b6 /html/033exclusive_container.cc.html | |
parent | 897ae8c1855f830d8819759ea327d147f28a09bf (diff) | |
download | mu-f344b250f6f062a1a1902bf69b23ebf9b565de0e.tar.gz |
3395
Diffstat (limited to 'html/033exclusive_container.cc.html')
-rw-r--r-- | html/033exclusive_container.cc.html | 128 |
1 files changed, 64 insertions, 64 deletions
diff --git a/html/033exclusive_container.cc.html b/html/033exclusive_container.cc.html index 01cdfbfb..f0d129e3 100644 --- a/html/033exclusive_container.cc.html +++ b/html/033exclusive_container.cc.html @@ -56,9 +56,9 @@ get<span class="Delimiter">(</span>Type<span class="Delimiter">,</span> tmp<span <span class="Delimiter">:(scenario copy_exclusive_container)</span> <span class="Comment"># Copying exclusive containers copies all their contents and an extra location for the tag.</span> def main [ - <span class="Constant">1</span>:number<span class="Special"> <- </span>copy <span class="Constant">1</span> <span class="Comment"># 'point' variant</span> - <span class="Constant">2</span>:number<span class="Special"> <- </span>copy <span class="Constant">34</span> - <span class="Constant">3</span>:number<span class="Special"> <- </span>copy <span class="Constant">35</span> + <span class="Constant">1</span>:num<span class="Special"> <- </span>copy <span class="Constant">1</span> <span class="Comment"># 'point' variant</span> + <span class="Constant">2</span>:num<span class="Special"> <- </span>copy <span class="Constant">34</span> + <span class="Constant">3</span>:num<span class="Special"> <- </span>copy <span class="Constant">35</span> <span class="Constant">4</span>:number-<span class="Normal">or</span>-point<span class="Special"> <- </span>copy <span class="Constant">1</span>:number-<span class="Normal">or</span>-point/unsafe ] <span class="traceContains">+mem: storing 1 in location 4</span> @@ -105,10 +105,10 @@ put<span class="Delimiter">(</span>Type_ordinal<span class="Delimiter">,</span> <span class="Delimiter">:(scenario maybe_convert)</span> def main [ - <span class="Constant">12</span>:number<span class="Special"> <- </span>copy <span class="Constant">1</span> - <span class="Constant">13</span>:number<span class="Special"> <- </span>copy <span class="Constant">35</span> - <span class="Constant">14</span>:number<span class="Special"> <- </span>copy <span class="Constant">36</span> - <span class="Constant">20</span>:point<span class="Delimiter">,</span> <span class="Constant">22</span>:boolean<span class="Special"> <- </span>maybe-convert <span class="Constant">12</span>:number-<span class="Normal">or</span>-point/unsafe<span class="Delimiter">,</span> <span class="Constant">1</span>:variant + <span class="Constant">12</span>:num<span class="Special"> <- </span>copy <span class="Constant">1</span> + <span class="Constant">13</span>:num<span class="Special"> <- </span>copy <span class="Constant">35</span> + <span class="Constant">14</span>:num<span class="Special"> <- </span>copy <span class="Constant">36</span> + <span class="Constant">20</span>:point<span class="Delimiter">,</span> <span class="Constant">22</span>:<span class="Normal">bool</span><span class="Special"> <- </span>maybe-convert <span class="Constant">12</span>:number-<span class="Normal">or</span>-point/unsafe<span class="Delimiter">,</span> <span class="Constant">1</span>:variant ] <span class="Comment"># boolean</span> <span class="traceContains">+mem: storing 1 in location 22</span> @@ -118,10 +118,10 @@ def main [ <span class="Delimiter">:(scenario maybe_convert_fail)</span> def main [ - <span class="Constant">12</span>:number<span class="Special"> <- </span>copy <span class="Constant">1</span> - <span class="Constant">13</span>:number<span class="Special"> <- </span>copy <span class="Constant">35</span> - <span class="Constant">14</span>:number<span class="Special"> <- </span>copy <span class="Constant">36</span> - <span class="Constant">20</span>:number<span class="Delimiter">,</span> <span class="Constant">21</span>:boolean<span class="Special"> <- </span>maybe-convert <span class="Constant">12</span>:number-<span class="Normal">or</span>-point/unsafe<span class="Delimiter">,</span> <span class="Constant">0</span>:variant + <span class="Constant">12</span>:num<span class="Special"> <- </span>copy <span class="Constant">1</span> + <span class="Constant">13</span>:num<span class="Special"> <- </span>copy <span class="Constant">35</span> + <span class="Constant">14</span>:num<span class="Special"> <- </span>copy <span class="Constant">36</span> + <span class="Constant">20</span>:num<span class="Delimiter">,</span> <span class="Constant">21</span>:<span class="Normal">bool</span><span class="Special"> <- </span>maybe-convert <span class="Constant">12</span>:number-<span class="Normal">or</span>-point/unsafe<span class="Delimiter">,</span> <span class="Constant">0</span>:variant ] <span class="Comment"># boolean</span> <span class="traceContains">+mem: storing 0 in location 21</span> @@ -235,19 +235,19 @@ put<span class="Delimiter">(</span>Recipe_ordinal<span class="Delimiter">,</span <span class="Delimiter">:(scenario maybe_convert_product_type_mismatch)</span> <span class="Special">% Hide_errors = true;</span> def main [ - <span class="Constant">12</span>:number<span class="Special"> <- </span>copy <span class="Constant">1</span> - <span class="Constant">13</span>:number<span class="Special"> <- </span>copy <span class="Constant">35</span> - <span class="Constant">14</span>:number<span class="Special"> <- </span>copy <span class="Constant">36</span> - <span class="Constant">20</span>:number<span class="Delimiter">,</span> <span class="Constant">21</span>:boolean<span class="Special"> <- </span>maybe-convert <span class="Constant">12</span>:number-<span class="Normal">or</span>-point/unsafe<span class="Delimiter">,</span> <span class="Constant">1</span>:variant + <span class="Constant">12</span>:num<span class="Special"> <- </span>copy <span class="Constant">1</span> + <span class="Constant">13</span>:num<span class="Special"> <- </span>copy <span class="Constant">35</span> + <span class="Constant">14</span>:num<span class="Special"> <- </span>copy <span class="Constant">36</span> + <span class="Constant">20</span>:num<span class="Delimiter">,</span> <span class="Constant">21</span>:<span class="Normal">bool</span><span class="Special"> <- </span>maybe-convert <span class="Constant">12</span>:number-<span class="Normal">or</span>-point/unsafe<span class="Delimiter">,</span> <span class="Constant">1</span>:variant ] <span class="traceContains">+error: main: 'maybe-convert 12:number-or-point/unsafe, 1:variant' should write to point but '20' has type number</span> <span class="Delimiter">:(scenario maybe_convert_dummy_product)</span> def main [ - <span class="Constant">12</span>:number<span class="Special"> <- </span>copy <span class="Constant">1</span> - <span class="Constant">13</span>:number<span class="Special"> <- </span>copy <span class="Constant">35</span> - <span class="Constant">14</span>:number<span class="Special"> <- </span>copy <span class="Constant">36</span> - _<span class="Delimiter">,</span> <span class="Constant">21</span>:boolean<span class="Special"> <- </span>maybe-convert <span class="Constant">12</span>:number-<span class="Normal">or</span>-point/unsafe<span class="Delimiter">,</span> <span class="Constant">1</span>:variant + <span class="Constant">12</span>:num<span class="Special"> <- </span>copy <span class="Constant">1</span> + <span class="Constant">13</span>:num<span class="Special"> <- </span>copy <span class="Constant">35</span> + <span class="Constant">14</span>:num<span class="Special"> <- </span>copy <span class="Constant">36</span> + _<span class="Delimiter">,</span> <span class="Constant">21</span>:<span class="Normal">bool</span><span class="Special"> <- </span>maybe-convert <span class="Constant">12</span>:number-<span class="Normal">or</span>-point/unsafe<span class="Delimiter">,</span> <span class="Constant">1</span>:variant ] $error: <span class="Constant">0</span> @@ -255,8 +255,8 @@ $error: <span class="Constant">0</span> <span class="Delimiter">:(scenario exclusive_container)</span> exclusive-container foo [ - <span class="Normal">x</span>:number - <span class="Normal">y</span>:number + <span class="Normal">x</span>:num + <span class="Normal">y</span>:num ] <span class="traceContains">+parse: --- defining exclusive-container foo</span> <span class="traceContains">+parse: element: {x: "number"}</span> @@ -272,27 +272,27 @@ exclusive-container foo [ <span class="Delimiter">:(scenario exclusive_container_contains_array)</span> exclusive-container foo [ - <span class="Normal">x</span>:array:number:<span class="Constant">3</span> + <span class="Normal">x</span>:array:num:<span class="Constant">3</span> ] $error: <span class="Constant">0</span> <span class="Delimiter">:(scenario exclusive_container_disallows_dynamic_array_element)</span> <span class="Special">% Hide_errors = true;</span> exclusive-container foo [ - <span class="Normal">x</span>:array:number + <span class="Normal">x</span>:array:num ] <span class="traceContains">+error: container 'foo' cannot determine size of element 'x'</span> <span class="SalientComment">//:: To construct exclusive containers out of variant types, use 'merge'.</span> <span class="Delimiter">:(scenario lift_to_exclusive_container)</span> exclusive-container foo [ - <span class="Normal">x</span>:number - <span class="Normal">y</span>:number + <span class="Normal">x</span>:num + <span class="Normal">y</span>:num ] def main [ - <span class="Constant">1</span>:number<span class="Special"> <- </span>copy <span class="Constant">34</span> - <span class="Constant">2</span>:foo<span class="Special"> <- </span>merge <span class="Constant">0</span>/x<span class="Delimiter">,</span> <span class="Constant">1</span>:number <span class="Comment"># tag must be a literal when merging exclusive containers</span> - <span class="Constant">4</span>:foo<span class="Special"> <- </span>merge <span class="Constant">1</span>/y<span class="Delimiter">,</span> <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>:foo<span class="Special"> <- </span>merge <span class="Constant">0</span>/x<span class="Delimiter">,</span> <span class="Constant">1</span>:num <span class="Comment"># tag must be a literal when merging exclusive containers</span> + <span class="Constant">4</span>:foo<span class="Special"> <- </span>merge <span class="Constant">1</span>/y<span class="Delimiter">,</span> <span class="Constant">1</span>:num ] <span class="traceContains">+mem: storing 0 in location 2</span> <span class="traceContains">+mem: storing 34 in location 3</span> @@ -303,11 +303,11 @@ def main [ <span class="Delimiter">:(scenario merge_handles_exclusive_container)</span> exclusive-container foo [ - <span class="Normal">x</span>:number + <span class="Normal">x</span>:num <span class="Normal">y</span>:bar ] container bar [ - <span class="Normal">z</span>:number + <span class="Normal">z</span>:num ] def main [ <span class="Constant">1</span>:foo<span class="Special"> <- </span>merge <span class="Constant">0</span>/x<span class="Delimiter">,</span> <span class="Constant">34</span> @@ -319,29 +319,29 @@ $error: <span class="Constant">0</span> <span class="Delimiter">:(scenario merge_requires_literal_tag_for_exclusive_container)</span> <span class="Special">% Hide_errors = true;</span> exclusive-container foo [ - <span class="Normal">x</span>:number + <span class="Normal">x</span>:num <span class="Normal">y</span>:bar ] container bar [ - <span class="Normal">z</span>:number + <span class="Normal">z</span>:num ] def main [ - <span class="Constant">1</span>:number<span class="Special"> <- </span>copy <span class="Constant">0</span> - <span class="Constant">2</span>:foo<span class="Special"> <- </span>merge <span class="Constant">1</span>:number<span class="Delimiter">,</span> <span class="Constant">34</span> + <span class="Constant">1</span>:num<span class="Special"> <- </span>copy <span class="Constant">0</span> + <span class="Constant">2</span>:foo<span class="Special"> <- </span>merge <span class="Constant">1</span>:num<span class="Delimiter">,</span> <span class="Constant">34</span> ] -<span class="traceContains">+error: main: ingredient 0 of 'merge' should be a literal, for the tag of exclusive-container 'foo' in '2:foo <- merge 1:number, 34'</span> +<span class="traceContains">+error: main: ingredient 0 of 'merge' should be a literal, for the tag of exclusive-container 'foo' in '2:foo <- merge 1:num, 34'</span> <span class="Delimiter">:(scenario merge_handles_exclusive_container_inside_exclusive_container)</span> exclusive-container foo [ - <span class="Normal">x</span>:number + <span class="Normal">x</span>:num <span class="Normal">y</span>:bar ] exclusive-container bar [ - <span class="Normal">a</span>:number - <span class="Normal">b</span>:number + <span class="Normal">a</span>:num + <span class="Normal">b</span>:num ] def main [ - <span class="Constant">1</span>:number<span class="Special"> <- </span>copy <span class="Constant">0</span> + <span class="Constant">1</span>:num<span class="Special"> <- </span>copy <span class="Constant">0</span> <span class="Constant">2</span>:bar<span class="Special"> <- </span>merge <span class="Constant">0</span>/a<span class="Delimiter">,</span> <span class="Constant">34</span> <span class="Constant">4</span>:foo<span class="Special"> <- </span>merge <span class="Constant">1</span>/y<span class="Delimiter">,</span> <span class="Constant">2</span>:bar ] @@ -377,12 +377,12 @@ $error: <span class="Constant">0</span> <span class="Delimiter">:(scenario merge_check_container_containing_exclusive_container)</span> container foo [ - <span class="Normal">x</span>:number + <span class="Normal">x</span>:num <span class="Normal">y</span>:bar ] exclusive-container bar [ - <span class="Normal">x</span>:number - <span class="Normal">y</span>:number + <span class="Normal">x</span>:num + <span class="Normal">y</span>:num ] def main [ <span class="Constant">1</span>:foo<span class="Special"> <- </span>merge <span class="Constant">23</span><span class="Delimiter">,</span> <span class="Constant">1</span>/y<span class="Delimiter">,</span> <span class="Constant">34</span> @@ -395,12 +395,12 @@ $error: <span class="Constant">0</span> <span class="Delimiter">:(scenario merge_check_container_containing_exclusive_container_2)</span> <span class="Special">% Hide_errors = true;</span> container foo [ - <span class="Normal">x</span>:number + <span class="Normal">x</span>:num <span class="Normal">y</span>:bar ] exclusive-container bar [ - <span class="Normal">x</span>:number - <span class="Normal">y</span>:number + <span class="Normal">x</span>:num + <span class="Normal">y</span>:num ] def main [ <span class="Constant">1</span>:foo<span class="Special"> <- </span>merge <span class="Constant">23</span><span class="Delimiter">,</span> <span class="Constant">1</span>/y<span class="Delimiter">,</span> <span class="Constant">34</span><span class="Delimiter">,</span> <span class="Constant">35</span> @@ -409,12 +409,12 @@ def main [ <span class="Delimiter">:(scenario merge_check_exclusive_container_containing_container)</span> exclusive-container foo [ - <span class="Normal">x</span>:number + <span class="Normal">x</span>:num <span class="Normal">y</span>:bar ] container bar [ - <span class="Normal">x</span>:number - <span class="Normal">y</span>:number + <span class="Normal">x</span>:num + <span class="Normal">y</span>:num ] def main [ <span class="Constant">1</span>:foo<span class="Special"> <- </span>merge <span class="Constant">1</span>/y<span class="Delimiter">,</span> <span class="Constant">23</span><span class="Delimiter">,</span> <span class="Constant">34</span> @@ -426,12 +426,12 @@ $error: <span class="Constant">0</span> <span class="Delimiter">:(scenario merge_check_exclusive_container_containing_container_2)</span> exclusive-container foo [ - <span class="Normal">x</span>:number + <span class="Normal">x</span>:num <span class="Normal">y</span>:bar ] container bar [ - <span class="Normal">x</span>:number - <span class="Normal">y</span>:number + <span class="Normal">x</span>:num + <span class="Normal">y</span>:num ] def main [ <span class="Constant">1</span>:foo<span class="Special"> <- </span>merge <span class="Constant">0</span>/x<span class="Delimiter">,</span> <span class="Constant">23</span> @@ -441,12 +441,12 @@ $error: <span class="Constant">0</span> <span class="Delimiter">:(scenario merge_check_exclusive_container_containing_container_3)</span> <span class="Special">% Hide_errors = true;</span> exclusive-container foo [ - <span class="Normal">x</span>:number + <span class="Normal">x</span>:num <span class="Normal">y</span>:bar ] container bar [ - <span class="Normal">x</span>:number - <span class="Normal">y</span>:number + <span class="Normal">x</span>:num + <span class="Normal">y</span>:num ] def main [ <span class="Constant">1</span>:foo<span class="Special"> <- </span>merge <span class="Constant">1</span>/y<span class="Delimiter">,</span> <span class="Constant">23</span> @@ -455,12 +455,12 @@ def main [ <span class="Delimiter">:(scenario merge_check_exclusive_container_containing_container_4)</span> exclusive-container foo [ - <span class="Normal">x</span>:number + <span class="Normal">x</span>:num <span class="Normal">y</span>:bar ] container bar [ - <span class="Normal">a</span>:number - <span class="Normal">b</span>:number + <span class="Normal">a</span>:num + <span class="Normal">b</span>:num ] def main [ <span class="Constant">1</span>:bar<span class="Special"> <- </span>merge <span class="Constant">23</span><span class="Delimiter">,</span> <span class="Constant">24</span> @@ -485,18 +485,18 @@ $error: <span class="Constant">0</span> <span class="Delimiter">:(scenario merge_exclusive_container_with_mismatched_sizes)</span> container foo [ - <span class="Normal">x</span>:number - <span class="Normal">y</span>:number + <span class="Normal">x</span>:num + <span class="Normal">y</span>:num ] exclusive-container bar [ - <span class="Normal">x</span>:number + <span class="Normal">x</span>:num <span class="Normal">y</span>:foo ] def main [ - <span class="Constant">1</span>:number<span class="Special"> <- </span>copy <span class="Constant">34</span> - <span class="Constant">2</span>:number<span class="Special"> <- </span>copy <span class="Constant">35</span> - <span class="Constant">3</span>:bar<span class="Special"> <- </span>merge <span class="Constant">0</span>/x<span class="Delimiter">,</span> <span class="Constant">1</span>:number - <span class="Constant">6</span>:bar<span class="Special"> <- </span>merge <span class="Constant">1</span>/foo<span class="Delimiter">,</span> <span class="Constant">1</span>:number<span class="Delimiter">,</span> <span class="Constant">2</span>:number + <span class="Constant">1</span>:num<span class="Special"> <- </span>copy <span class="Constant">34</span> + <span class="Constant">2</span>:num<span class="Special"> <- </span>copy <span class="Constant">35</span> + <span class="Constant">3</span>:bar<span class="Special"> <- </span>merge <span class="Constant">0</span>/x<span class="Delimiter">,</span> <span class="Constant">1</span>:num + <span class="Constant">6</span>:bar<span class="Special"> <- </span>merge <span class="Constant">1</span>/foo<span class="Delimiter">,</span> <span class="Constant">1</span>:num<span class="Delimiter">,</span> <span class="Constant">2</span>:num ] <span class="traceContains">+mem: storing 0 in location 3</span> <span class="traceContains">+mem: storing 34 in location 4</span> |