From a912b261d3e6c95430bf2116b15b3af2e112bc4b Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 27 Dec 2018 15:07:51 +0300 Subject: dump validation errors --- crates/ra_syntax/src/utils.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/ra_syntax/src/utils.rs b/crates/ra_syntax/src/utils.rs index 5bbdf80bb..0a2b6afbc 100644 --- a/crates/ra_syntax/src/utils.rs +++ b/crates/ra_syntax/src/utils.rs @@ -1,10 +1,13 @@ -use crate::{SourceFileNode, SyntaxKind, SyntaxNodeRef, WalkEvent}; +use crate::{SourceFileNode, SyntaxKind, SyntaxNodeRef, WalkEvent, AstNode}; use std::fmt::Write; use std::str; /// Parse a file and create a string representation of the resulting parse tree. pub fn dump_tree(syntax: SyntaxNodeRef) -> String { - let mut errors: Vec<_> = syntax.root_data().to_vec(); + let mut errors: Vec<_> = match syntax.ancestors().find_map(SourceFileNode::cast) { + Some(file) => file.owned().errors(), + None => syntax.root_data().to_vec(), + }; errors.sort_by_key(|e| e.offset()); let mut err_pos = 0; let mut level = 0; -- cgit v1.2.3