about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-11-04 23:54:14 -0800
committerKartik K. Agaram <vc@akkartik.com>2015-11-04 23:54:14 -0800
commit9cfd925aa408d32197cfba6ef870f3f45cc6309a (patch)
tree2ca62b36125d3b548efe1c1ac2b66f5b3f98a83a
parentcc6c9e747933a0174e3b1e87886be13b49b0face (diff)
downloadmu-9cfd925aa408d32197cfba6ef870f3f45cc6309a.tar.gz
2362
Now we try to be smarter about checking for presence in the Type array.

Still can't get generic duplex-list to work.
-rw-r--r--030container.cc2
-rw-r--r--055parse_tree.cc1
2 files changed, 2 insertions, 1 deletions
diff --git a/030container.cc b/030container.cc
index 72acd48d..03af439c 100644
--- a/030container.cc
+++ b/030container.cc
@@ -530,7 +530,7 @@ void check_invalid_types(const recipe_ordinal r) {
 void check_invalid_types(const type_tree* type, const string& block, const string& name) {
   if (!type) return;  // will throw a more precise error elsewhere
   // End Container Type Checks
-  if (type->value && Type.find(type->value) == Type.end()) {
+  if (type->value && (Type.find(type->value) == Type.end() || Type[type->value].name.empty())) {
     raise_error << block << "unknown type in " << name << '\n' << end();
   }
   if (type->left) check_invalid_types(type->left, block, name);
diff --git a/055parse_tree.cc b/055parse_tree.cc
index f71b2e19..1260bf36 100644
--- a/055parse_tree.cc
+++ b/055parse_tree.cc
@@ -57,6 +57,7 @@ string_tree* parse_string_tree(istream& in) {
 }
 
 :(scenario dilated_reagent_with_type_tree)
+% Hide_errors = true;  // 'map' isn't defined yet
 recipe main [
   {1: (map (address array character) (list number))} <- copy 34
 ]