aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2024-12-11 14:19:44 +0100
committerP-E-P <32375388+P-E-P@users.noreply.github.com>2025-01-29 10:45:07 +0000
commit55c047ebe117ec97c8d9040035d73113ae0d6fd2 (patch)
tree972eed628767587068450730a72e48ac195b947d
parentb6a77c4640f94a59e02d2fade1cc499c3b9345a0 (diff)
downloadgcc-55c047ebe117ec97c8d9040035d73113ae0d6fd2.zip
gcc-55c047ebe117ec97c8d9040035d73113ae0d6fd2.tar.gz
gcc-55c047ebe117ec97c8d9040035d73113ae0d6fd2.tar.bz2
Add debug dump to old name resolver
It might be necessary to compare both name resolution' internal states during the transition. This new debug representation could help with that. gcc/rust/ChangeLog: * resolve/rust-name-resolver.h: Add new degug dump for old name resolver. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
-rw-r--r--gcc/rust/resolve/rust-name-resolver.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/rust/resolve/rust-name-resolver.h b/gcc/rust/resolve/rust-name-resolver.h
index 5e1901a..bf5ef77 100644
--- a/gcc/rust/resolve/rust-name-resolver.h
+++ b/gcc/rust/resolve/rust-name-resolver.h
@@ -204,6 +204,41 @@ public:
void insert_captured_item (NodeId id);
const std::set<NodeId> &get_captures (NodeId id) const;
+ std::string as_debug_string () const
+ {
+ std::stringstream ss;
+
+ ss << "Names:\n";
+ for (auto &n : name_ribs)
+ {
+ ss << "\tNodeID: " << n.first << " Rib: " << n.second->debug_str ()
+ << "\n";
+ }
+ ss << "Types:\n";
+ for (auto &n : type_ribs)
+ {
+ ss << "\tNodeID: " << n.first << " Rib: " << n.second->debug_str ()
+ << "\n";
+ }
+ ss << "Macros:\n";
+
+ for (auto &n : macro_ribs)
+ {
+ ss << "\tNodeID: " << n.first << " Rib: " << n.second->debug_str ()
+ << "\n";
+ }
+
+ ss << "Labels:\n";
+
+ for (auto &n : label_ribs)
+ {
+ ss << "\tNodeID: " << n.first << " Rib: " << n.second->debug_str ()
+ << "\n";
+ }
+
+ return ss.str ();
+ }
+
protected:
bool decl_needs_capture (NodeId decl_rib_node_id, NodeId closure_rib_node_id,
const Scope &scope);