]> git.lizzy.rs Git - rust.git/commitdiff
dump validation errors
authorAleksey Kladov <aleksey.kladov@gmail.com>
Thu, 27 Dec 2018 12:07:51 +0000 (15:07 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Thu, 27 Dec 2018 12:07:51 +0000 (15:07 +0300)
crates/ra_syntax/src/utils.rs

index 5bbdf80bb75f19a55f9c6cd7560ae9eda28aa482..0a2b6afbc785ee496016d35a3d6fb84bd68b7f48 100644 (file)
@@ -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;