From 8d13864440ba8b6ede1097c79b28e4981caf714a Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Fri, 21 May 2021 23:45:27 +0200 Subject: Add an ItemTree pretty-printer --- crates/hir_def/src/item_tree.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'crates/hir_def/src/item_tree.rs') diff --git a/crates/hir_def/src/item_tree.rs b/crates/hir_def/src/item_tree.rs index 7440e7d29..528270d49 100644 --- a/crates/hir_def/src/item_tree.rs +++ b/crates/hir_def/src/item_tree.rs @@ -1,6 +1,9 @@ //! A simplified AST that only contains items. mod lower; +mod pretty; +#[cfg(test)] +mod tests; use std::{ any::type_name, @@ -205,6 +208,10 @@ impl ItemTree { } } + pub fn pretty_print(&self) -> String { + pretty::print_item_tree(self) + } + fn data(&self) -> &ItemTreeData { self.data.as_ref().expect("attempted to access data of empty ItemTree") } @@ -776,6 +783,10 @@ impl IdRange { fn new(range: Range>) -> Self { Self { range: range.start.into_raw().into()..range.end.into_raw().into(), _p: PhantomData } } + + fn is_empty(&self) -> bool { + self.range.is_empty() + } } impl Iterator for IdRange { -- cgit v1.2.3