about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-02-06 13:03:10 -0800
committerKartik K. Agaram <vc@akkartik.com>2016-02-06 13:03:10 -0800
commit7153f7eafbfb80c22ebeb3c1967ebc3960daaa20 (patch)
tree65a3164943f28785996545b0cdc3b4953e7b655f
parentb8ce12120ac310a20441b46d088010db03c3fa89 (diff)
downloadmu-7153f7eafbfb80c22ebeb3c1967ebc3960daaa20.tar.gz
2635
-rw-r--r--010vm.cc1
-rw-r--r--030container.cc4
-rw-r--r--033exclusive_container.cc2
3 files changed, 7 insertions, 0 deletions
diff --git a/010vm.cc b/010vm.cc
index af3bcc98..6fb897d0 100644
--- a/010vm.cc
+++ b/010vm.cc
@@ -179,6 +179,7 @@ struct type_info {
   kind_of_type kind;
   long long int size;  // only if type is not primitive; primitives and addresses have size 1 (except arrays are dynamic)
   vector<type_tree*> elements;
+  vector<string_tree*> element_type_names;
   vector<string> element_names;
   // End type_info Fields
   type_info() :kind(PRIMITIVE), size(0) {}
diff --git a/030container.cc b/030container.cc
index 2164f376..c8b2134f 100644
--- a/030container.cc
+++ b/030container.cc
@@ -6,8 +6,10 @@ type_ordinal point = put(Type_ordinal, "point", Next_type_ordinal++);
 get_or_insert(Type, point).size = 2;
 get(Type, point).kind = CONTAINER;
 get(Type, point).name = "point";
+get(Type, point).element_type_names.push_back(new string_tree("number"));
 get(Type, point).elements.push_back(new type_tree(number));
 get(Type, point).element_names.push_back("x");
+get(Type, point).element_type_names.push_back(new string_tree("number"));
 get(Type, point).elements.push_back(new type_tree(number));
 get(Type, point).element_names.push_back("y");
 
@@ -42,8 +44,10 @@ get_or_insert(Type, point_number).size = 2;
 get(Type, point_number).kind = CONTAINER;
 get(Type, point_number).name = "point-number";
 get(Type, point_number).elements.push_back(new type_tree(point));
+get(Type, point_number).element_type_names.push_back(new string_tree("point"));
 get(Type, point_number).element_names.push_back("xy");
 get(Type, point_number).elements.push_back(new type_tree(number));
+get(Type, point_number).element_type_names.push_back(new string_tree("number"));
 get(Type, point_number).element_names.push_back("z");
 
 :(scenario copy_handles_nested_container_elements)
diff --git a/033exclusive_container.cc b/033exclusive_container.cc
index 982330bb..e6da34f0 100644
--- a/033exclusive_container.cc
+++ b/033exclusive_container.cc
@@ -11,8 +11,10 @@ type_ordinal tmp = put(Type_ordinal, "number-or-point", Next_type_ordinal++);
 get_or_insert(Type, tmp).size = 2;
 get(Type, tmp).kind = EXCLUSIVE_CONTAINER;
 get(Type, tmp).name = "number-or-point";
+get(Type, tmp).element_type_names.push_back(new string_tree("number"));
 get(Type, tmp).elements.push_back(new type_tree(number));
 get(Type, tmp).element_names.push_back("i");
+get(Type, tmp).element_type_names.push_back(new string_tree("point"));
 get(Type, tmp).elements.push_back(new type_tree(point));
 get(Type, tmp).element_names.push_back("p");
 }