about summary refs log tree commit diff stats
path: root/030container.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-07-21 11:56:27 -0700
committerKartik K. Agaram <vc@akkartik.com>2016-07-21 12:04:55 -0700
commitfc19980d91e306df87b308d0c2875a2dcaf4b5c7 (patch)
treecb0a172d6ccc356ef3a707b1b00c920621312cf9 /030container.cc
parent2c697d86791b0771e34b44d0b6864030595c6334 (diff)
downloadmu-fc19980d91e306df87b308d0c2875a2dcaf4b5c7.tar.gz
3119
Warn if 'put' or 'put-index' has a mismatch in the type of the product,
not just the name. It won't do any harm, but could be misleading to a
later reader. In both instructions, the product is just for
documentation.
Diffstat (limited to '030container.cc')
-rw-r--r--030container.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/030container.cc b/030container.cc
index 0c3da911..e22fe4be 100644
--- a/030container.cc
+++ b/030container.cc
@@ -434,10 +434,12 @@ case PUT: {
     raise << maybe(get(Recipe, r).name) << "'put " << base.original_string << ", " << offset.original_string << "' should write to " << names_to_string_without_quotes(element.type) << " but '" << value.name << "' has type " << names_to_string_without_quotes(value.type) << '\n' << end();
     break;
   }
-  if (!inst.products.empty() && inst.products.at(0).name != inst.ingredients.at(0).name) {
+  if (inst.products.empty()) break;  // no more checks necessary
+  if (inst.products.at(0).name != inst.ingredients.at(0).name) {
     raise << maybe(get(Recipe, r).name) << "product of 'put' must be first ingredient '" << inst.ingredients.at(0).original_string << "', but got '" << inst.products.at(0).original_string << "'\n" << end();
     break;
   }
+  // End PUT Product Checks
   break;
 }
 :(before "End Primitive Recipe Implementations")