about summary refs log tree commit diff stats
path: root/010vm.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-11-27 21:38:09 -0800
committerKartik K. Agaram <vc@akkartik.com>2015-11-27 21:38:09 -0800
commitfca48e92d4e51eb7e5b1a811b65e5d69fadeb713 (patch)
tree41bdb3252b20d563670e5db848cedc5c3be689cb /010vm.cc
parent7f193a0e006c44604918b54c853bd49508dbe8fd (diff)
downloadmu-fca48e92d4e51eb7e5b1a811b65e5d69fadeb713.tar.gz
2483 - to-text can now handle lists
'append' also implicitly calls 'to-text' unless there's a better
variant.
Diffstat (limited to '010vm.cc')
-rw-r--r--010vm.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/010vm.cc b/010vm.cc
index fcd72be2..52e66f15 100644
--- a/010vm.cc
+++ b/010vm.cc
@@ -487,15 +487,18 @@ bool deeply_equal(const string_tree* a, const string_tree* b) {
 :(before "End Globals")
 set<string> Literal_type_names;
 :(before "End One-time Setup")
-Literal_type_names.insert("literal");
 Literal_type_names.insert("number");
 Literal_type_names.insert("character");
 :(code)
 bool deeply_equal_types(const string_tree* a, const string_tree* b) {
   if (!a) return !b;
   if (!b) return !a;
-  if (Literal_type_names.find(a->value) != Literal_type_names.end())
+  if (a->value == "literal" && b->value == "literal")
+    return true;
+  if (a->value == "literal")
     return Literal_type_names.find(b->value) != Literal_type_names.end();
+  if (b->value == "literal")
+    return Literal_type_names.find(a->value) != Literal_type_names.end();
   return a->value == b->value
       && deeply_equal_types(a->left, b->left)
       && deeply_equal_types(a->right, b->right);