diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2016-11-10 18:45:13 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2016-11-10 18:45:13 -0800 |
commit | 6e1307c8291d2f42dc17daba3ad78fe1f7c63b69 (patch) | |
tree | 8150facd2933436270819bface80ea51cbe9466d | |
parent | 30117aba31e5a8376eac2a2acfd475a0c6886c46 (diff) | |
download | mu-6e1307c8291d2f42dc17daba3ad78fe1f7c63b69.tar.gz |
3660
Fix a place I forgot to update in commit 3309, moving to the new type_tree representation.
-rw-r--r-- | 054static_dispatch.cc | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/054static_dispatch.cc b/054static_dispatch.cc index c698edb2..6967b92a 100644 --- a/054static_dispatch.cc +++ b/054static_dispatch.cc @@ -94,14 +94,17 @@ bool deeply_equal_type_names(const reagent& a, const reagent& b) { bool deeply_equal_type_names(const type_tree* a, const type_tree* b) { if (!a) return !b; if (!b) return !a; - if (a->name == "literal" && b->name == "literal") - return true; - if (a->name == "literal") - return Literal_type_names.find(b->name) != Literal_type_names.end(); - if (b->name == "literal") - return Literal_type_names.find(a->name) != Literal_type_names.end(); - return a->name == b->name - && deeply_equal_type_names(a->left, b->left) + if (a->atom != b->atom) return false; + if (a->atom) { + if (a->name == "literal" && b->name == "literal") + return true; + if (a->name == "literal") + return Literal_type_names.find(b->name) != Literal_type_names.end(); + if (b->name == "literal") + return Literal_type_names.find(a->name) != Literal_type_names.end(); + return a->name == b->name; + } + return deeply_equal_type_names(a->left, b->left) && deeply_equal_type_names(a->right, b->right); } |