about summary refs log tree commit diff stats
path: root/032array.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 /032array.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 '032array.cc')
-rw-r--r--032array.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/032array.cc b/032array.cc
index 7f918870..56b487a6 100644
--- a/032array.cc
+++ b/032array.cc
@@ -385,10 +385,12 @@ case PUT_INDEX: {
     raise << maybe(get(Recipe, r).name) << "'put-index " << base.original_string << ", " << inst.ingredients.at(1).original_string << "' should store " << 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-index' must be first ingredient '" << inst.ingredients.at(0).original_string << "', but got '" << inst.products.at(0).original_string << "'\n" << end();
     break;
   }
+  // End PUT_INDEX Product Checks
   break;
 }
 :(before "End Primitive Recipe Implementations")