From ba4a697d8cb577c03c84c0c91a25ecbeaa9c68e6 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 8 Sep 2018 18:34:41 +0300 Subject: move fuzz-invariants to the library --- crates/libsyntax2/src/lib.rs | 38 +++----------------------------------- 1 file changed, 3 insertions(+), 35 deletions(-) (limited to 'crates/libsyntax2/src/lib.rs') diff --git a/crates/libsyntax2/src/lib.rs b/crates/libsyntax2/src/lib.rs index 7a30f5d38..d955c01e7 100644 --- a/crates/libsyntax2/src/lib.rs +++ b/crates/libsyntax2/src/lib.rs @@ -66,7 +66,9 @@ impl File { fn new(green: GreenNode, errors: Vec) -> File { let root = SyntaxRoot::new(green, errors); let root = SyntaxNode::new_owned(root); - validate_block_structure(root.borrowed()); + if cfg!(debug_assertions) { + utils::validate_block_structure(root.borrowed()); + } File { root } } pub fn parse(text: &str) -> File { @@ -112,40 +114,6 @@ impl File { } } -#[cfg(not(debug_assertions))] -fn validate_block_structure(_: SyntaxNodeRef) {} - -#[cfg(debug_assertions)] -fn validate_block_structure(root: SyntaxNodeRef) { - let mut stack = Vec::new(); - for node in algo::walk::preorder(root) { - match node.kind() { - SyntaxKind::L_CURLY => { - stack.push(node) - } - SyntaxKind::R_CURLY => { - if let Some(pair) = stack.pop() { - assert_eq!( - node.parent(), - pair.parent(), - "\nunpaired curleys:\n{}\n{}\n", - root.text(), - utils::dump_tree(root), - ); - assert!( - node.next_sibling().is_none() && pair.prev_sibling().is_none(), - "\nfloating curlys at {:?}\nfile:\n{}\nerror:\n{}\n", - node, - root.text(), - node.text(), - ); - } - } - _ => (), - } - } -} - #[derive(Debug, Clone)] pub struct AtomEdit { pub delete: TextRange, -- cgit v1.2.3