about summary refs log tree commit diff stats
path: root/055shape_shifting_container.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-09-10 16:47:17 -0700
committerKartik K. Agaram <vc@akkartik.com>2016-09-10 16:47:17 -0700
commit271f101f85a9b482f6cdaac677bd391159d85cee (patch)
treed6334dd440747fb04b80c24692a92ac53077acf9 /055shape_shifting_container.cc
parente7f239014819c2b401c825650091bd5b55d0a679 (diff)
downloadmu-271f101f85a9b482f6cdaac677bd391159d85cee.tar.gz
3321
Clean up another case (after commit 3309) of premature support for
shape-shifting recipes, where early layers had code without
corresponding tests.

One addendum to commit 3309: the proximal cause for triggering the
rewrite of type_trees was that I realized to_string() and variants were
lying to me while debugging; they couldn't distinguish between `(a . b)`
and `((a) . b)`
Diffstat (limited to '055shape_shifting_container.cc')
-rw-r--r--055shape_shifting_container.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/055shape_shifting_container.cc b/055shape_shifting_container.cc
index 131028a5..596c691e 100644
--- a/055shape_shifting_container.cc
+++ b/055shape_shifting_container.cc
@@ -8,6 +8,17 @@ if (!type->atom)
 :(before "End is_mu_exclusive_container(type) Special-cases")
 if (!type->atom)
   return is_mu_exclusive_container(root_type(type));
+// a few calls to root_type() without the assertion (for better error handling)
+:(after "Update GET base_type in Check")
+if (!base_type->atom) base_type = base_type->left;
+:(after "Update GET base_type in Run")
+if (!base_type->atom) base_type = base_type->left;
+:(after "Update PUT base_type in Check")
+if (!base_type->atom) base_type = base_type->left;
+:(after "Update PUT base_type in Run")
+if (!base_type->atom) base_type = base_type->left;
+:(after "Update MAYBE_CONVERT base_type in Check")
+if (!base_type->atom) base_type = base_type->left;
 
 :(scenario size_of_shape_shifting_container)
 container foo:_t [