about summary refs log tree commit diff stats
path: root/059generic_recipe.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-11-05 00:57:23 -0800
committerKartik K. Agaram <vc@akkartik.com>2015-11-05 00:57:23 -0800
commit805a476150590ecf5c9eeca791db1f6aa1b4787a (patch)
tree9e345a6478150300fb2e7785e708188bf48fad72 /059generic_recipe.cc
parente01277f73d032117ecfef4069980d018428975e3 (diff)
downloadmu-805a476150590ecf5c9eeca791db1f6aa1b4787a.tar.gz
2369 - layer 1 of edit is back
Diffstat (limited to '059generic_recipe.cc')
-rw-r--r--059generic_recipe.cc9
1 files changed, 2 insertions, 7 deletions
diff --git a/059generic_recipe.cc b/059generic_recipe.cc
index fc0b71ec..2fe08c27 100644
--- a/059generic_recipe.cc
+++ b/059generic_recipe.cc
@@ -140,10 +140,6 @@ recipe_ordinal new_variant(recipe_ordinal exemplar, const instruction& inst) {
 }
 
 void compute_type_ingredient_mappings(const recipe& exemplar, const instruction& inst, map<string, string>& mappings) {
-  if (SIZE(inst.ingredients) < SIZE(exemplar.ingredients)
-      || SIZE(inst.products) < SIZE(exemplar.products)) {
-    raise_error << "can't specialize " << exemplar.name << " without all ingredients and products, but got '" << inst.to_string() << "'\n" << end();
-  }
   for (long long int i = 0; i < SIZE(exemplar.ingredients); ++i) {
     accumulate_type_ingredients(exemplar.ingredients.at(i), inst.ingredients.at(i), mappings, exemplar);
   }
@@ -164,10 +160,9 @@ void accumulate_type_ingredients(const reagent& base, const reagent& refinement,
 void accumulate_type_ingredients(const string_tree* base, const string_tree* refinement, map<string, string>& mappings, const recipe& exemplar, const reagent& r) {
   if (!base) return;
   if (!refinement) {
-    if (!Trace_stream) cerr << "Turn on START_TRACING_UNTIL_END_OF_SCOPE in 020run.cc for more details.\n";
-    DUMP("");
+    raise_error << maybe(exemplar.name) << "missing type ingredient in " << r.original_string << '\n' << end();
+    return;
   }
-  assert(refinement);
   if (!base->value.empty() && base->value.at(0) == '_') {
     assert(!refinement->value.empty());
     if (mappings.find(base->value) == mappings.end()) {